码迷,mamicode.com
首页 > 其他好文 > 详细

NumPy常用操作

时间:2019-09-29 22:06:35      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:space   ==   标准   种类型   形式   stack   tac   作用   let   

NumPy 是一个 python 科学计算的核心库,它提供了高性能的多维数组类型和处理这些高维数组的工具。

导入

import numpy as np

创建数组

技术图片

a = np.array([1,2,3])
a = np.array([(1.5,2,3),(4,5,6)],dtype=float)
a = np.array([[(1.5,2,3),(4,5,6)],[(3,2,1),(4,5,6)]],dtype=float)

初始化元素

# 用 0 初始化数组
np.zeros((3,4))
# 用 1 初始化数组
np.ones((2,3,4))
# 生成元素全为 7 的数组
np.full((2,2),7)
# 生成单位矩阵
np.eye(2)
# 生成随机矩阵, 注意有两个 random
np.random.random((2,2))
# 生成 10 到 25 的数,步长为 5
np.arrange(10,25,5)
# 9 个数字均分 0 到 2
np.linspace(0,2,9)

了解数组特征

# 显示数组的维度
a.ndim
# 显示数组各维度的长度
a.shape
# 显示数组长度(第一维)
len(a)
# 显示数组元素的个数
a.size
# 显示数组元素的数据类型
a.dtype
# 将数组元素转化为另一种类型
a.astype(int)

数组的数学操作

算术操作

# 矩阵乘法,除了这个函数,其他操作都是元素级的操作
a.dot(b)

数组比较

# 元素级比较,生成的一个 shape 与原数组相同的 bool 数组
a < 2
# 元素级比较,数组的 shape 必须相同,结果形式同上
a == b
# 数组级比较,生成一个 bool 变量
np.array_equal(a.b)

聚合函数

# 所有元素求和
a.sum()
# 求所有元素的最小值 ## axis=0 -> 以列为单位 axis=1 -> 以行为单位
a.min()
# 求所有元素的均值
a.mean()
# 求所有元素的中位数
a.mediana()
# 求数组的标准差
np.std(a)

复制数组

# b=a.view(),b=np.copy(a)的效果也一样
b = a.copy()

数组排序

# 排序数组,axis 也是可选参数
a.sort()

元素筛选

取子集

# 从 0 开始计数,先行后列
a[1,2]或 a[1][2]

切片

# python 中的区间左闭右开,例如 [2:5] 就等于 2,3,4
# 反转数组中的元素
a[::-1]

布尔索引

# 选出 a 中小于 2 的元素
a[a<2]

数组操作

转置数组

# 也可以写成 np.transpose(a)
a.T

改变数组的形状

# 将数组拉平
a.ravel()
# 有返回值,所谓有返回值,即不会对原始多维数组进行修改;
# 改变数组形状, 但是不改变数据, 多余数据截断, 缺少数据用 0 补齐
a.reshape(3,-1)
# 无返回值,所谓无返回值,即会对原始多维数组进行修改;
a.resize((3,2))         

增加或减少元素

# 将 a 拉平后,在尾部加上 b
np.append(a,b)
# 在将位置 1 开始的元素整体后移,插入新元素 5
np.insert(a,1,5)
# 删除位置 1 的元素
np.delete(a,[1])

拼接数组

# 要拼接的那个维度长度必须相同,例如 axis=0,就是按行拼接,列数必须相同
np.concatenate((a,b),axis=0)                                        
# 按一行行拼接
np.vstack((a,b))
np.r_[a,b]

# 按一列列拼接
np.hstack((a,b))
np.c_[a,b]
np.column_stack((a,d))

分割数组

# 将 a 按列分为 3 个相同的子数组(horizontally == column-wise)
np.hsplit(a,3)
# 将 a 按行分为 3 个相同的子数组(vertically == row-wise)
np.vsplit(a,3)

对于 axis 参数的理解

如果我们将聚合函数作用在张量上,张量的维度一定会下降,而 axis 就决定了哪个维度将坍塌。
axis=0 就是 row-wise,axis=1 就是 column-wise,axis=2 就是 depth-wise

NumPy常用操作

标签:space   ==   标准   种类型   形式   stack   tac   作用   let   

原文地址:https://www.cnblogs.com/JasonBUPT/p/11609910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!