Python之Numpy(一)

目录

一、创建数组

1.1 Array

1.2 Arrange

1.3 Uniform

1.4 Random.randint

1.5 zeros

二、数组操作

2.1 max & min

2.2 digitize

2.3 count_nonzero

2.4 argwhere

2.5 clip

三、替换数组

3.1 where

3.2 put

3.3 copyto


一、创建数组

创建数组 描述
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]

 

 

 

你可能感兴趣的:(numpy,python,开发语言)