python科学计算库(二)Numpy

介绍

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:矢量运算是相同,支持矢量和标量

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值