目录
一、创建数组
创建数组 | 描述 |
---|---|
np.array | 用于创建一维或多维数组 |
np.linspace | 创建一个具有指定间隔的浮点数的数组 |
np.arange | 在给定的间隔内返回具有一定步长的整数 |
np.uniform | 在上下限之间的均匀分布中生成随机样本 |
np.random.randint | 在一个范围内生成n个随机整数样本 |
np.random.random | 生成n个随机浮点数样本 |
np.logspace | 在对数尺度上生成间隔均匀的数字 |
np.zeroes | 创建一个全部为0的数组 |
np.ones | 创建一个全部为1的数组 |
np.full | 创建一个单独值的n维数组 |
np.identity | 创建具有指定维度的单位矩阵 |
1.1 Array
创建一维或多维数组
arr1 = np.array([1,2,3,4,5])
arr1
>>> array([1, 2, 3, 4, 5])
将pandas的series转为NumPy数组
ser1 = pd.Series(["张三","李四","王五"])
arr2 = np.array(ser1)
arr2
>>> array(['张三', '李四', '王五'], dtype=object)
1.2 Arrange
创建一个具有指定间隔的整数的数组
arr3 = np.arange(5,10,2)
arr3
>>> array([5, 7, 9])
1.3 Uniform
在上下限之间的均匀分布中生成随机样本
arr4 = np.random.uniform(5,10,size = 4)
arr4
>>> array([9.68454285, 8.20889895, 9.69066747, 8.03249396])
arr5 = np.random.uniform(size = (2,3))
arr5
>>> array([[0.91381367, 0.11607847, 0.0873435 ],
[0.09365167, 0.37786482, 0.1176585 ]])
1.4 Random.randint
在一个范围内生成n个随机整数样本
arr6 = np.random.randint(5,10,10)
arr6
>>> array([6, 5, 8, 5, 5, 7, 7, 9, 6, 7])
1.5 zeros
np.zeroes会创建一个全部为0的数组
arr7 = np.zeros((2,3),dtype='int')
arr7
>>> array([[0, 0, 0],
[0, 0, 0]])
二、数组操作
数组操作 | 描述 |
---|---|
np.min | 返回数组中的最小值 |
np.max | 返回数组中的最大值 |
np.unique | 返回一个所有唯一元素排序的数组 |
np.mean | 返回数组的平均数 |
np.medain | 返回数组的中位数 |
np.digitize | 返回输入数组中每个值所属的容器的索引 |
np.reshape | 返回一个数组,其中包含具有新形状的相同数据 |
np.expand_dims | 它用于扩展数组的维度 |
np.squeeze | 通过移除一个单一维度来降低数组的维度 |
np.count_nonzero | 计算所有非零元素并返回它们的计数 |
np.argwhere | 查找并返回非零元素的所有下标 |
np.argmax & argmin | argmax返回数组中Max元素的索引。它可以用于多类图像分类问题中获得高概率预测标签的指标 |
np.sort | 对数组排序 |
np.abs | 返回数组中元素的绝对值 |
np.round | 将浮点值四舍五入到指定数目的小数点 |
np.clip | 它可以将数组的裁剪值保持在一个范围内 |
2.1 max & min
返回数组中的最大/小值
arr8 = np.array([[1,2,1],[2,4,1]])
np.max(arr8)
>>> 4
2.2 digitize
返回输入数组中每个值所属的容器的索引
arr9 = np.array([-0.9, 0.5, 0.9, 1, 1.2, 1.4, 3.6, 4.7, 5.3])
bins = np.array([0,1,2,3])
np.digitize(arr9,bins)
>>> array([0, 1, 1, 2, 2, 2, 4, 4, 4], dtype=int64)
2.3 count_nonzero
计算所有非零元素并返回它们的计数
arr10 = np.array([[0,0,0,1,1],[1,2,3,0,0]])
np.count_nonzero(arr10)
>>> 5
2.4 argwhere
查找并返回非零元素的下标
arr11 = np.array([[0,0,0,1,1],[1,2,3,0,0]])
np.argwhere(arr11)
>>> array([[0, 3],
[0, 4],
[1, 0],
[1, 1],
[1, 2]], dtype=int64)
2.5 clip
它可以将数组的裁剪值保持在一个范围内
arr12 = np.array([0,1,-3,-4,5,6,7,2,3])
arr12.clip(0,5)
>>> array([0, 1, 0, 0, 5, 5, 5, 2, 3])
arr13 = np.array([[1,2,0,6], [4,7,6,9]])
arr13.clip(0,5)
>>> array([[1, 2, 0, 5],
[4, 5, 5, 5]])
三、替换数组
数组操作 | 描述 |
---|---|
np.where | 返回满足条件的数组元素 |
np.put | 用给定的值替换数组中指定的元素 |
np.copyto | 将一个数组的内容复制到另一个数组中 |
3.1 where
返回满足条件的数组元素
arr14 = np.arange(12).reshape(4,3)
arr14
>>> array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
np.where(arr14 > 5)
>>> (array([2, 2, 2, 3, 3, 3], dtype=int64),
array([0, 1, 2, 0, 1, 2], dtype=int64))
arr14[np.where(arr14 > 5)]
>>> array([ 6, 7, 8, 9, 10, 11])
3.2 put
用给定的值替换数组中指定的元素
arr15 = np.array([1,2,3,4,5,6])
arr15
>>> array([1, 2, 3, 4, 5, 6])
np.put(arr15,[1,2],[6,7])
arr15
>>> array([1, 6, 7, 4, 5, 6])
3.3 copyto
将一个数组的内容复制到另一个数组中
arr16 = np.array([1,2,3])
arr17 = np.array([4,5,6])
print(arr16)
print(arr17)
>>> [1 2 3]
>>> [4 5 6]
np.copyto(arr16,arr17)
print(arr16)
print(arr17)
>>> [4 5 6]
>>> [4 5 6]