当前位置:   article > 正文

Numpy学习笔记_生成一个5到25,步长为4的一维数组

生成一个5到25,步长为4的一维数组

Numpy学习笔记

创建数组

a = np.array([1, 2, 3])  # 创建一个一维数组
b = np.array([(1.5, 2, 3), (4, 5, 6)], dtype=float)  # 创建一个二维数组
c = np.array([[(1.5, 2, 3), (4, 5, 6)], [(3, 2, 1), (4, 5, 6)]], dtype=float)  # 创建一个三维数组
  • 1
  • 2
  • 3

初始占位符

a = np.zeros((3, 4))  # 创建一个3x4全是0的数组
b = np.ones((2, 3, 4), dtype=np.int16)  # 创建一个2x3x4全是1的数组,数据类型为int16
c = d = np.arange(10, 25, 5)  # 创建一个从10到25,步长为5的数组
d = np.linspace(0, 2, 9)  # 创建一个从0到2,等间距的9个数据的数组
e = np.full((2, 2), 7)  # 创建一个2x2全是7的数组
f = np.eye(2)  # 创建一个2x2的单位矩阵
g = np.random.random((2, 2))  # 创建一个2x2的随机数组
h = np.empty((3, 2))  # 创建一个3x2的空数组
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

I/O

从磁盘保存和加载

np.save('my_array', a)  # 将数组a保存为my_array文件
np.savez('array.npz', a, b)  # 将数组a和b保存为array.npz文件
np.load('my_array.npy')  # 加载my_array.npy文件
  • 1
  • 2
  • 3

从文本文件保存和加载

np.loadtxt("myfile.txt")  # 从文本文件中读取数据
np.genfromtxt("my_file.csv", delimiter=',')  # 从csv文件中读取数据
np.savetxt("myarray.txt", a, delimiter=" ")  # 将数组保存为文本文件
  • 1
  • 2
  • 3

数据类型

np.int64  # 64位有符号整数类型
np.float32  # 标准双精度浮点类型
np.complex  # 复数类型
np.bool  # 布尔类型
np.object  # Python对象类型
np.string_  # 固定长度字符串类型
np.unicode_  # 固定长度Unicode类型
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

检查数组

a.shape  # 数组a的形状
len(a)  # 数组a的长度
b.ndim  # 数组b的维度
e.size  # 数组e的元素个数
b.dtype  # 数组b的数据类型
b.dtype.name  # 数组b的数据类型名称
b.astype(int)  # 将数组b转换为整数类型
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

寻求帮助

np.info(np.ndarray.dtype)  # 帮助文档
  • 1

数组数学

算术运算

b + a  # 加法
np.add(b, a)
a - b  # 减法
np.subtract(a, b)
a * b  # 矩阵乘法
np.multiply(a, b)
a / b  # 除法
np.divide(a, b)
np.exp(b)  # 指数
np.sqrt(b)  # 平方根
np.sin(a)  # 正弦
np.cos(b)  # 余弦
np.log(a)  # 自然对数
e.dot(f)  # 内积
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

比较运算

a == b  # 逐元素比较
a < 2  # 逐元素比较
np.array_equal(a, b)  # 数组整体比较
  • 1
  • 2
  • 3

聚合函数

a.sum()  # 数组求和
a.min()  # 数组最小值
b.max(axis=0)  # 每一列的最大值
b.cumsum(axis=1)  # 每一行的累计和
a.mean()  # 数组平均值
b.median()  # 矩阵中位数
a.corrcoef()  # 数组相关系数
np.std(b)  # 标准差
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

数组复制

h = a.view()  # 创建一个新的视图,指向相同的数据,修改其中一个会影响另一个。
np.copy(a)  # 创建一个新的数组,内容和原数组完全相同。
h = a.copy()  # 创建一个新的数组,内容和原数组完全相同。
  • 1
  • 2
  • 3

数组排序

a.sort() # 排序
c.sort(axis=0) # 按列排序
  • 1
  • 2

子集、切片、索引

子集

a[2]  # 选择第二个索引处的元素
b[1, 2]  # 选择第一行第二列的元素 (相当于 b[1][2])
  • 1
  • 2

切片

a[0:2]  # 选择索引为 0 和 1 的项
b[0:2, 1]  # 选择第 0 行和第 1 行在第 1 列的项目
b[:1]  # 选择第 0 行的所有项目 (等同于 b[0:1, :])"
c[1, ...]  # 等同于 [1,:,:]
a[::-1]  # 反转数组
  • 1
  • 2
  • 3
  • 4
  • 5

Python内置切片类似,只是可能

  1. 两个维度:比如b[0:2, 1],用逗号隔开,第一个代表行,第二个代表列
  2. 更多维度:比如c[1, …],省略号代表后面每个维度

布尔索引

a[a < 2]  # 选择数组 a 中小于 2 的元素
  • 1

高级索引

b[[1, 0, 1, 0], [0, 1, 2, 0]]  # 选择元素 (1,0),(0,1),(1,2) 和 (0,0)
b[[1, 0, 1, 0]][:, [0, 1, 2, 0]]  # 选择矩阵的部分行和列
  • 1
  • 2

数组操作

数组转置

i = np.transpose(b)
i.T
  • 1
  • 2

改变数组形状

b.ravel()  # 将数组展平
g.reshape(3, -2)  # 变形,但不改变数据
  • 1
  • 2

增加/移出元素

h.resize((2, 6))  # 返回一个形状为 (2,6) 的新数组
np.append(h, g)  # 向数组追加项目
np.insert(a, 1, 5)  # 在数组中插入项目
np.delete(a, [1])  # 从数组中删除项目
  • 1
  • 2
  • 3
  • 4

合并数组

np.concatenate((a, d), axis=0)  # 连接数组
np.vstack((a, b))  # 垂直堆叠数组(按行)
np.r_[e, f]  # 垂直堆叠数组 (按行)
np.hstack((e, f))  # 水平堆叠数组(按列)
np.column_stack((a, d))  # 水平堆叠数组(按列)
np.c_[a, d]  # 水平堆叠数组(按列)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

拆分数组

np.hsplit(a, 3)  # 将数组在第3个索引处进行水平拆分
np.vsplit(c, 2)  # 将数组在第2个索引处进行垂直拆分
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/1004502
推荐阅读
相关标签
  

闽ICP备14008679号