本文共 1745 字,大约阅读时间需要 5 分钟。
Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。
Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。
Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。
(1)内存地址连续,所有元素数据类型相同
(2)支持并行化运算 (3)解除了GIL限制属性名字 | 属性解释 |
---|---|
ndarray.shape | 数组维度的元组 |
ndarray.ndim | 数组维数 |
ndarray.size | 数组中的元素数量 |
ndarray.itemsize | 一个数组元素的长度(字节) |
ndarray.dtype | 数组元素的类型 |
1、np.ones(shape, dtype):生成全1的数组
2、np.ones_like(a, dtype):生成和a相同形状的数组 3、np.zeros(shape, dtype):生成全0数组 4、np.zeros_like(a, dtype):生成和a相同形状数组 5、np.array(object, dtype):从列表生成数组 6、np.asarray(a, dtype):如果是列表,则创建新的ndarray,如果a是ndarray,则不会创建新的空间np.linsapce(start, stop, num, endpoint)
np.arange(start,stop, step, dtype)
np.logspace(start,stop, num)
标准正态分布:np.random.randn()
np.random.normal(μ,σ)
均匀分布:np.random.rand()
np.random.uniform()
np.random.randint()
ndarray.reshape()
:返回一个新的ndarray
ndarray.resize()
:在自身修改 ndarray.T
:转置 ndarray.astype()
:返回修改类型之后的数组
np.unique(ndarray)
ndarray > 60
:返回布尔类型的数组
ndarray[ndarray>60]
:返回为True的元素 np.all()
:所有都为True返回True np.any()
:有一个为Ture返回True np.where()
:三元运算符 np.logical_and()
:逻辑与 np.logical_or()
:逻辑或 方法 | 说明 |
---|---|
min(a, axis) | 返回数组的最小值或沿轴的最小值 |
max(a, axis]) | 返回数组的最大值或沿轴的最大值 |
median(a, axis) | 计算沿指定轴的中位数 |
mean(a, axis, dtype) | 沿指定轴计算算术平均值 |
std(a, axis, dtype) | 沿指定轴计算标准偏差 |
var(a, axis, dtype) | 沿指定轴计算标方差 |
np.argmax(axis=) | 最大元素对应的下标 |
np.argmin(axis=) | 最小元素对应的下标 |
数组在进行矢量化运算时,要求数组的形状是相等的。当形状不相等的数组执行算术运算的时候,就会出现广播机制,该机制会对数组进行扩展,使数组的shape属性值一样,这样,就可以进行矢量化运算了。
广播主要发生在两种情况,一种是两个数组的维数不相等,但是它们的后缘维度的轴长相符,另外一种是有一方的长度为1。
eg:
arr1 = np.array([[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]])arr2 = np.array([[1], [3]])print(arr1+arr2)# 结果# array([[2, 3, 4, 3, 2, 5],# [8, 9, 4, 5, 6, 4]])
(M行, N列)*(N行, L列) = (M行, L列)
np.matmul()
:矩阵乘
np.dot
:矢量运算是相同,支持矢量和标量 转载地址:http://rbqmi.baihongyu.com/