1、查找数组中不为0的索引
data = np.array([1,2,5,0,8,6,0,0,0,9,1])
np.nonzero(data)
2、创建一个数组,并将其倒序排列
arr1 = np.arange(10)
arr1
arr2 = arr1[::-1]
arr2
3、查看最大/小值在元组坐标中的索引
np.unravel_index(arr.argmax(),(5,5))
np.unravel_index(arr.argmin(),(5,5))
4、求两个随机数组的交集
arr1 = np.random.randint(20,size=10)
arr2 = np.random.randint(20,size=10)
np.intersect1d(arr1,arr2)
5、对矩阵进行归一化处理
arr = np.random.randint(5,40,(5,5))
arr_min = arr.min()
arr_max = arr.max()
arr1 = (arr-arr_min)/(arr_max-arr_min)
array([[0.84375, 0.96875, 0.03125, 1. , 0.09375],
[0.09375, 0.28125, 0.59375, 0.65625, 0. ],
[0.28125, 0.03125, 0.96875, 0.4375 , 0.3125 ],
[0.59375, 0.34375, 0. , 0.25 , 0.5 ],
[0.3125 , 0.34375, 0.625 , 0.90625, 1. ]])
6、获取一个数的整数部分
arr = np.random.uniform(30,size=10)
arr1 = np.floor(arr)
arr2 = np.ceil(arr)
7、设置数组只读
arr.flags.writeable=False
8、设置折叠显示
np.set_printoptions(threshold=5)
arr = np.ones((7,7))
array([[1., 1., 1., ..., 1., 1., 1.],
[1., 1., 1., ..., 1., 1., 1.],
[1., 1., 1., ..., 1., 1., 1.],
...,
[1., 1., 1., ..., 1., 1., 1.],
[1., 1., 1., ..., 1., 1., 1.],
[1., 1., 1., ..., 1., 1., 1.]])
9、获取一个数组中最接近某个数字的元素的索引
arr = np.random.uniform(1,50,(5*5))
index = (np.abs(arr-30)).argmin()
np.unravel_index(index,(5,5))
10、打印数组元素的坐标位置和数值
arr = np.arange(0,9).reshape(3,3)
for index,value in np.ndenumerate(arr):
print(index,value)
(0, 0) 0
(0, 1) 1
(0, 2) 2
(1, 0) 3
(1, 1) 4
(1, 2) 5
(2, 0) 6
(2, 1) 7
(2, 2) 8
11、数组按照某一列排序
arr = np.random.randint(5,30,(5,5))
arr[arr[:,1].argsort()]
12、统计数组中每个数值出现的次数
arr = np.array([1,1,1,3,3,5,7,8,9,9,9,0])
np.bincount(arr)