# np.argsort() 排序的索引
print('-' * 20)
a2 = np.array([4, 3, 1, 2])
j = np.argsort(a2)
print(j) # [2 3 1 0]
print(a2[j]) # [1 2 3 4]
np.floor 返回不大于输入参数的最大整数。 即对于输入值 x ,将返回最大的整数 i ,使得 i <= x。 注意在Python中,向下取整总是从 0 舍入。
np.around 返回四舍五入后的值,可指定精度。
around(a, decimals=0, out=None)
np.ceil 函数返回输入值的上限,即对于输入 x ,返回最小的整数 i ,使得 i> = x。
numpy.where(condition[, x, y])
根据 condition 从 x 和 y 中选择元素,当为 True 时,选 x,否则选 y。
numpy的花式索引
import numpy as np
arr=np.arange(42).reshape(6,7)
print(arr)
print(arr[[1,2,3]])
print(arr[[0,1,2,3],[1,2,3,4]])#用来取斜线
print(arr[1:5:2,1:5:2])
print(arr[1:6:2,[2,4,6]])
结果
[[ 0 1 2 3 4 5 6]
[ 7 8 9 10 11 12 13]
[14 15 16 17 18 19 20]
[21 22 23 24 25 26 27]
[28 29 30 31 32 33 34]
[35 36 37 38 39 40 41]]
[[ 7 8 9 10 11 12 13]
[14 15 16 17 18 19 20]
[21 22 23 24 25 26 27]]
[ 1 9 17 25]
[[ 8 10]
[22 24]]
[[ 9 11 13]
[23 25 27]
[37 39 41]]
numpy的布尔索引
import numpy as np
arr = np.arange(28).reshape((7,4))
b=np.array([True,False,False,True,True,False,False])
names = np.array(['Ben','Tom','Ben','Jeremy','Jason','Michael','Ben'])
print(names == 'Ben')
print(arr)
print(arr[b])
print(arr[names == 'Ben'])
n结果
[ True False True False False False True]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]
[16 17 18 19]
[20 21 22 23]
[24 25 26 27]]
[[ 0 1 2 3]
[12 13 14 15]
[16 17 18 19]]
[[ 0 1 2 3]
[ 8 9 10 11]
[24 25 26 27]]
布尔索引是花式索引的特殊格式。
umpy的np.nan
import numpy as np
print(np.nan+6)
print(np.isnan(np.nan))
print(np.nan==np.nan)
print(np.nan==None)
print(None==None)
print(type(np.nan))
a=np.arange(24).reshape(6,4)
print(np.where(a%3,a,np.nan))
print(np.sum(np.where(a%3,a,np.nan)))
print(np.nansum(np.where(a%3,a,np.nan)))
结果
nan
True
False
False
True
<class 'float'>
[[nan 1. 2. nan]
[ 4. 5. nan 7.]
[ 8. nan 10. 11.]
[nan 13. 14. nan]
[16. 17. nan 19.]
[20. nan 22. 23.]]
nan
192.0