argsort,argmax与argmin
sort是排序,argsort是返回排序前数字的索引。
argmax与argmin.:一个返回最大值的索引,一个返回最小值的索引。
返回排序索引
import numpy as np
c = np.array([1,2,5,9,3])
print('输出排序结果:',np.sort(c))
print('输出排序前索引:',np.argsort(c))
print('输出最大值索引:',np.argmax(c))
print('输出最小值索引:',np.argmin(c))
'''
输出排序结果: [1 2 3 5 9]
输出排序前索引: [0 1 4 2 3]
输出最大值索引: 3
输出最小值索引: 0
'''
二维(多维)数组排序
按行排序、按列排序
import numpy as np
data = np.array([[11, 265, 5, 34, 53],
[51, 20, 4, 2, 31],
[13, 24, 3, 94, 6]])
print('按照第3列对行排序:\n',data[data[:,2].argsort()])
print('按照第3行对列排序:\n',data.T[data.T[:,2].argsort()].T)
print('按照第3行对列排序:\n',data[:,data[2].argsort()])
'''
按照第3列对行排序:
[[ 13 24 3 94 6]
[ 51 20 4 2 31]
[ 11 265 5 34 53]]
按照第3行对列排序:
[[ 5 53 11 265 34]
[ 4 31 51 20 2]
[ 3 6 13 24 94]]
按照第3行对列排序:
[[ 5 53 11 265 34]
[ 4 31 51 20 2]
[ 3 6 13 24 94]]
'''
import numpy as np
a = np.array([[2, 17, 4, 6],
[35, 9, 1, 5],
[22, 12, 3, 2]])
print('按最后一列顺序排序:\n',a[np.lexsort(a.T)])
print('按最后一列逆序排序:\n',a[np.lexsort(-a.T)])
print('按第一列顺序排序:\n',a[np.lexsort(a[:, ::-1].T)])
print('按最后一行顺序排序:\n',a.T[np.lexsort(a)].T)
print('按第一行顺序排序:\n',a.T[np.lexsort(a[::-1, :])].T)
'''
按最后一列顺序排序:
[[22 12 3 2]
[35 9 1 5]
[ 2 17 4 6]]
按最后一列逆序排序:
[[ 2 17 4 6]
[35 9 1 5]
[22 12 3 2]]
按第一列顺序排序:
[[ 2 17 4 6]
[22 12 3 2]
[35 9 1 5]]
按最后一行顺序排序:
[[ 6 4 17 2]
[ 5 1 9 35]
[ 2 3 12 22]]
按第一行顺序排序:
[[ 2 4 6 17]
[35 1 5 9]
[22 3 2 12]]
'''
bincount()
用于求numpy中求array出现次数最多的元素及其索引,
与列表list.count(a)统计a在列表中出现的次数很像,但又不同。
import numpy as np
array1 = np.array([1,2,2,5,9,9,9,3,7])
print('输出等距排序后的元素出现次数:',np.bincount(array1))
'''
输出等距排序后的元素出现次数: [0 1 2 1 0 1 0 1 0 3]
分析:
array1 中最大数为9,bin的数量为9+1=10,它的索引值为0—>9
输出的结果也是,依次表示从0到9的元素出现的数量。
它返回的array中0–max等距出现的次数:
依次是 0 出现次数:0
1 出现次数:1
2 出现次数:2
3 出现次数:1
...
8 出现次数:0
9 出现次数:3
'''
count()
string 中 某字符 的次数
公式: str.count(sub, start= 0,end=len(string))
# coding=utf-8
string = 'Hello World ! Hello Python !'
print "string.count(sub) : ", string.count('H')
print "string.count(sub, 1) : ", string.count('H', 1)
print "string.count(sub, 1, 100) : ", string.count('H', 1, 100) # 随便取个 无限大的 end 参数
'''
string.count(sub) : 2
string.count(sub, 1) : 1
string.count(sub, 1, 100) : 1
'''
list 中 某元素 的次数
公式: list.count(obj)
list = [10, 20, 30, 'Hello', 10, 20]
print "list.count('Hello') : ", list.count('Hello')
print "list.count(10) : ", list.count(10)
'''
list.count('Hello') : 1
list.count(10) : 2
'''
参考博客
python中count()、values_counts()、size()函数_且行且安~的博客-CSDN博客_value_count得到什么