Numpy 基础1
1. 创建数组
-
固定类型数组: 使用 Python 的
array模块创建固定类型数组。import array L = list(range(10)) A = array.array('i', L) -
从列表创建数组: 使用
np.array从 Python 列表创建 NumPy 数组。import numpy as np a = np.array([3.0, 2, 5, 1.3]) b = np.array([1, 2, 3, 4], dtype='float') -
嵌套列表构成多维数组:
c = np.array([range(i, i + 3) for i in [2, 4, 6]])
2. 从头创建数组
-
全零数组:
np.zeros创建一个全零数组。np.zeros(10, dtype=int) -
全一数组:
np.ones创建一个全一数组。np.ones((3, 5)) -
填充特定值的数组:
np.full创建一个数组并用特定值填充。np.full((3, 5), 3.14) -
线性序列数组:
np.arange创建一个线性序列数组。np.arange(0, 20, 2) -
随机数组: 使用
np.random模块创建随机数组。np.random.random((3, 3)) np.random.uniform(5, 7, (2, 2)) np.random.randint(5, 7, (2, 2)) -
单位矩阵:
np.eye创建一个单位矩阵。np.eye(3)
3. 数组基础
-
数组属性: 了解数组的维度、形状、大小、数据类型等属性。
x3.ndim, x3.shape, x3.size, x3.dtype, x3.itemsize, x3.nbytes -
数组索引和切片: 使用索引和切片访问和修改数组元素。
x1[0], x1[-1], x3[2][2][0] -
数组变形: 使用
reshape和np.newaxis改变数组形状。grid_reshape = np.arange(1, 10).reshape(3, 3)
4. 数组的拼接和分裂
-
数组拼接: 使用
np.concatenate,np.vstack,np.hstack拼接数组。np.concatenate([x, y, z]) np.vstack([x, y, z, grid]) np.hstack([grid, grid]) -
数组分裂: 使用
np.split,np.vsplit,np.hsplit分裂数组。x1, x2, x3 = np.split(x, [3, 5]) upper, lower = np.vsplit(grid, [2])
5. 通用函数
-
数学运算: 使用通用函数进行数组的加减乘除等运算。
np.add(x, 5), np.multiply(x, 2) -
三角函数和指数对数: 使用
np.sin,np.cos,np.exp,np.log等函数。np.sin(theta), np.exp(x), np.log(x) -
高级特性: 使用
reduce,accumulate,outer等高级特性进行聚合和外积计算。np.add.reduce(x), np.multiply.outer(x, x)
这些操作和概念是 NumPy 中最常用的部分,掌握它们可以帮助你在数据分析和科学计算中更高效地使用 NumPy。
Lab1
-
import numpy as np -
Q1:创建数列
-
利用arange函数,创建数组值从1开始到19结束(不包含19),步长为1,保存为a
-
再创建一个从19到49结束(不包含49),步长为1,保存为b
In [3]:
a = np.arange(1, 19, 1) b = np.arange(19, 49, 1) -
[Q2: 对数列形变 ]
-
-
利用reshape函数,将a形变为3×6的数组,保存为A
-
将b形变为5×6的数组,保存为B
In [4]:A = a.reshape(3, 6) B = b.reshape(5, 6) -
[Q3:数组拼接与分裂 ]
-
利用vstack将A和B数组进行垂直方向拼接,保存为C数组
-
利用split对C数组在第2行分裂成两部分,将下半部分保存为D
In [5]:
C = np.vstack((A, B)) D = np.split(C, [2])[1] -
Q4:切片与索引
对D提取第1行所有元素,保存为E In [6]:
E = D[0,:] -
Q5:数组计算
利用multiply.accumulate对E中所有元素依次求积,并保留最后一项作为E中的累计积保存为a1 In [11]:
a1 = np.multiply.accumulate(E)[-1] print('a1的值为:',a1)a1的值为: 13366080