numpy的基础用法

NumPy是Python中的科学计算核心库,提供多维数组对象和丰富的数组运算。本文涵盖数组的算数和逻辑运算、傅立叶变换、线性代数以及随机数生成。此外,详细讲解了nparray的索引、切片,数据存取的npy和npz格式,以及二元和三元函数,并介绍了集合运算的应用。
摘要由CSDN通过智能技术生成

初识Numpy

NumPy是一个Python包,它是一个由多维数组对象和用于处理数组的例程集合组成的库。

通过Numpy,可以进行如下操作:

  • 数组的算数和逻辑运算。
  • 傅立叶变换和用于图形操作的例程。
  • 与线性代数有关的操作,NumPy 拥有线性代数和随机数生成的内置函数。

现在一般通过Numpy、Scipy(Scientific Python)和Matplotlib(绘图库)结合来替代MatLab,是一个流行的技术计算平台。

numpy基础用法

numpy方法 解释
np.dtype 指定当前numpy对象的整体数据, 见下一个表格
np.itemsize 对象中每个元素的大小, 单位字节
np.size 对象元素的个数, 相当于np.shape中的n*m值
np.shape 轴, 查看数组形状, 对于矩阵, n行m列
np.ndim
np.isnan(list) 筛选出nan值
np.iscomplex(list) 筛选出非复数
~ 取补运算符
np.array(数组, dtype=np.bool) 自定义数组类型
np.astype(np.bool) 转换数组类型
np.mat() 将python 列表转化成矩阵
np.mat().getA() 将matrix对象转成ndarray对象
np.matrix() 同上
np.asmatrix() 将ndarray对象转成matrix对象
np.tile() 重复某个数组。比如tile(A,n),功能是将数组A重复n次,构成一个新的数组传送门
np.I 矩阵求逆
np.T 矩阵转置, 行变列, 列变行, 对角线翻转矩阵
np.tolist() 转换成python列表, 用于和python原生结合写程序
np.multiply(x, y) 矩阵x 矩阵y相乘
np.unique() 数组驱虫, 并且从小到大生成一个新的数组
np.arange 同python range()
np.arange(24).reshape((2, 3, 4)) 创建一个2维3行4列的数组, 必须能被给定的长度除开, 可以索引和切片
np.arange(24).resize((2, 3, 4)) 同上, 会修改原值
np.linspace(x, y, z) 等间距生成, x起始, y截止, z步长
np.ones(x) 生成都是x的数组, 可传递三维数组, 几行几列, 具体的个数
np.zeros(x) 生成都是0的数组
np.full([x, y], z) 自定义模板数组, 生成x行y列都是z的数组
np.eye(x) 创建一个正方的x*x单位的矩阵, 对角线为1, 其余为0
np.flatten() 数组降维, 不改变 原值
np.random.rand(x, y, z) 生成一个一维x随机数或生成x*y的随机数组
np.random.randn(x, y) 正态分布随机数
np.random.randint(low, high, (shape)) 整数随机数
np.random.normal(loc, scale, (size)) 从指定正态分布中抽取样本, loc为概率分布的均匀值, 标准差scale
np.random.seed(s) 给一个随机数字固定
np.randomunifrom(low, high, (size)) 均匀分布的数组, 有小数
np.random.shuffle(a) 将数组a的第0轴(最外维度)进行随机排列(洗牌), 改变数组a, 行边列不变
np.random.permutation(a) 同上, 不改变数组a
np.random.choice(a, size=None, replace=False, p=数组a/np.sum(b)) 从一维数组a中以概率p抽取元素,形成size形状新数组,replace表示是否可以重用元素,默认为False,p为抽取概率,本位置越高,抽取概率越高
np.sum(axis=None) 求和, axis=0为列, 1为行
np.argsort() 矩阵每个元素坐标排序
np.sort(axix=None) 从小打大排序
-np.sort(axis=None) 从大到小排序
np.sort_values(‘字段’, ascending=False) 排序,升序排列
np.mean(axis=None) 平均数
np.average(axis=None,weights=None) 加权平均,weights加权值,不设为等权重,例子[10, 5, 1],每列分别X10,X5,X1在/(10+5+1)
np.var(axis=None) 方差:各数与平均数之差的平方的平均数
np.std(axis=None) 标准差:方差平方根
np.min(axis=None) 最小值
np.argmin(axis=None) 求数组中最小值的坐标
np.median(axis=None) 中位数
np.ptp(axis=None) 元素最大值与最小值的差
np.cumsum() 累加,cumsum和cumprod之类的方法不聚合,产生一个中间结果组成的数组,默认一维数组,1为按原样
np.cumprod() 累乘
np.count_nonzero(arr > 0) 计数非0值个数,布尔值会被强制转换为1和0,可以使用sum()对布尔型数组中的True值计数
np.bools.any() 测试数组中是否存在一个或多个True
np.bools.all() 数组中所有值是否都是True, 测试有没有空值

nparray索引和切片

# 创建0-23, 共2个三行四列的数组
a = np.arange(24).reshape((2,3,4))
"""
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
"""
# 一个三维数组,提取12的话,python list是a[1][0][0], ndarange可以是a[1,0,0],也可以是[1][0][0]
# 可以用负数
# a[1,:] 选取第一维数组里面所有
# a[:,1] 选取所有维度,第一行
# a[1,:,3] 选取第一维度数组所有行里的第三个值
# a[:,0:2,1:3] 选取所有维度的第0行到第2行, 取元素第1个到第3个
# a[:,:,::2] 选取所有维度, 所有行, 步长为2的所有行

# -------------------------------------------------------------------------
# 例子,布尔型索引
names = np.array(['Bob','Joe','Will','Bob','Will','Joe','Joe'])
data = n
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值