Numpy常用函数与知识点总结
Numpy数组初始化
import numpy as np
array = np.array([[1,2,3],[2,3,4]], dtype=np.int64)
np.empty((2,3))
np.arange(12)
np.arrange(12).reshape((3,4))
np.linspace(1,10,16).reshape((3,4))
np.random.random((2,3))
Numpy数组性质
函数 | 说明 | 输出 |
---|
array1.dot(array2) | 矩阵点乘 | |
array1*array2 | 矩阵叉乘 | |
array*n | 矩阵乘常数 | 常数与矩阵每个元素相乘 |
array.T | 矩阵转置 | |
array.ndim | 维度 | 2 |
array.shape | 形状 | (2, 3) |
array.size | 元素数量 | 6 |
array.dtype | 元素的类型 | int64 |
Numpy数组运算
函数 | 说明 |
---|
np.sum(array, axis=1) | 0:按列跨行; 1:按行跨列 |
np.min(array) | 最小值 |
np.max(array) | 最大值 |
np.argmin(array) | 最小值索引 |
np.argmax(array) | 最大值索引 |
np.mean(array) | 平均值 |
np.average(array) | 平均值 |
np.median(array) | 中位数 |
np.cumsum(array) | 累加 |
np.diff(array) | 相邻两数相减 |
np.nonzero(array) | 非零值的行数和列数 |
np.sort(array) | 每行单独排序 |
np.transpose(array) | 对称矩阵,等价于array.T |
np.clip(array, m ,n) | 所有小于n的数修改为n,所有大于m的数修改为m;可用来修正sigmoid函数输出,防止过拟合 |
Numpy数组合并分割与复制
np.vstack(array1, array2)
np.hstack(array1, array2)
array[np.newaxis,:]
np.concatenate((array1, array2, array3, array4), axis=1)
np.split(array, 2, axis=0)
np.array_split(array, 3, axis=0)
np.vsplit(array, 3)
np.hsplit(array, 2)
array1 = array
array2 = array.copy()
代码技巧
array[array==5]=0
for row in array:
print(row)
for column in array.T:
print(column)
for item in array.flat:
print(item)
array1 = np.zeros((200, 200), order='C')
array2 = np.zeros((200, 200), order='F')
np.concatenate((a, b), axis=0)
np.concatenate((a, b), axis=0)
array.flatten()
array.ravel()
a_view1 = a[1:2, 3:6]
a_view2 = a[:100]
a_view3 = a[::2]
a_view4 = a.ravel()
a_copy1 = a[[1,4,6], [2,4,6]]
a_copy2 = a[[True, True], [False, True]]
a_copy3 = a[[1,2], :]
a_copy4 = a[a[1,:] != 0, :]
a_copy5 = a[np.isnan(a), :]
1.使用 np.take() , 替代用 index 选数据的方法.
np.take(array_all, array_indices, axis=0)
np.compress(mask, a, axis=0)
a = a + 1
a = np.add(a, 1)
a += 1
np.add(a, 1, out=a)
Reference
https://mofanpy.com/tutorials/data-manipulation/np-pd/