如何使用 NumPy
作者:互联网
NumPy 对于数据科学来说是必不可少的。
NumPy 是一个强大的 Python 科学计算库。它提供了用于处理数值数据数组和矩阵并对它们执行数学运算的工具。
在本教程中,我们将介绍 NumPy 的一些主要功能并向您展示如何使用它们。
内容
- 安装与设置
- 数组
- 索引和切片
- 重塑
- 移调
- 逐元素操作
- 线性代数
安装
要使用 NumPy,您首先需要安装它。
最简单的方法是使用pip
Python 包管理器。打开终端并输入以下命令:
pip 安装 numpy
这将安装 NumPy 及其所有依赖项。
导入 NumPy
import
安装 NumPy 后,您可以使用语句将其导入 Python 代码。
按照惯例,NumPy 通常使用别名导入np
,如下所示:
将numpy导入为np
这允许您np
在代码中引用 NumPy 函数和对象时使用缩短的名称。这通常是数据科学家普遍使用的别名。
NumPy 数组
NumPy 的主要特点之一是它的ndarray
(n 维数组)对象,它用于存储和操作同类数据(即相同类型的数据,例如整数或浮点值)的大型数组。
您可以使用函数创建 NumPy 数组,该array
函数将序列或可迭代对象(例如列表或元组)作为输入并返回包含数据的新 NumPy 数组。例如:
a = np.array([1, 2, 3]) # 创建一个一维数组1 , 2 , 3 ]) # 创建一维数组 print (a) # prints [1 2 3]
您还可以通过提供嵌套序列或可迭代对象来创建多维数组。例如:
b = np.array([[1, 2, 3], [4, 5, 6]]) # 创建一个二维数组1 , 2 , 3 ], [ 4 , 5 , 6 ]]) # 创建一个二维数组 print (b) # 打印 [[1 2 3] # [4 5 6]]
NumPy 数组有几个重要的属性,例如shape
、dtype
和ndim
属性。
shape
属性给出数组沿每个维度的大小,属性dtype
给出数组元素的数据类型,ndim
属性给出数组的维数。
例如:
print (a.shape) # 为具有 3 个元素的一维数组打印 (3,) print (b.shape) # 为具有 2 行和 3 列的二维数组打印 (2, 3) print (a. dtype) # 打印 int64(NumPy 数组的默认数据类型是 int64) print (b.dtype) # 也打印 int64 print (a.ndim) # 打印 1 print (b.ndim) # 打印 2
zeros
您还可以使用、ones
和empty
函数创建特定形状和数据类型的数组。这些函数返回一个新数组,分别填充零、一或未初始化(随机)值。例如:
c = np.zeros((3, 4)) # 创建一个 3x4 的零数组3 , 4 )) # 创建一个 3x4 的零数组 d = np.ones(( 2 , 2 )) # 创建一个 2x2 的 1 数组 e = np.empty(( 2 , 3 )) # 创建一个 2x
索引和切片
您可以使用方括号和索引访问 NumPy 数组的各个元素。例如:
a = np.array([1, 2, 3, 4, 5, 6])1 , 2 , 3 , 4 , 5 , 6 ]) print (a[ 2 ]) # 打印 3 b = np.array([[ 1 , 2 , 3 ], [ 4 , 5 , 6 ]]) print (b [ 1 , 2 ]) # 打印 6
您还可以对 NumPy 数组进行切片以提取子数组。例如:
print (a[ 2 : 5 ]) # 打印 [3 4 5] print (b[:, 1 ]) # 打印 [2 5] (所有行,第二列) print (b[ 1 , :]) # 打印 [ 4 5 6](第二行,所有列)
重塑
您可以使用 方法更改 NumPy 数组的形状reshape
。例如:
a = np.array([1, 2, 3, 4, 5, 6])1 , 2 , 3 , 4 , 5 , 6 ]) b = a.reshape(( 2 , 3 )) # 将 a 重塑为 2x3 数组 print (b) # 打印 [[1 2 3] # [4 5 6] ]
移调
T
您可以使用属性或transpose
函数转置 NumPy 数组。这将交换数组的行和列。例如:
a = np.array([[1, 2], [3, 4]])1 , 2 ], [ 3 , 4 ]]) b = aT # 转置 a print (b) # 打印 [[1 3] # [2 4]] c = np.transpose(a) # 相当于 b = aT print (c) # 打印 [[1 3] # [2 4]]
逐元素操作
您可以使用标准算术运算符(+、-、*、/ 等)对 NumPy 数组执行逐元素算术运算。例如:
a = np.array([1, 2, 3])1 , 2 , 3 ]) b = np.array([ 4 , 5 , 6 ]) c = a + b # element-wise addition print (c) # prints [5 7 9] d = a * 2 # element-明智地乘以标量 print (d) # prints [2 4 6] e = a / b # element-wise division print (e) # prints [0.25 0.4 0.5]
线性代数
NumPy 提供了一系列用于执行线性代数运算的函数,例如矩阵乘法、向量点积和奇异值分解。例如:
a = np.array([[1, 2], [3, 4]])1 , 2 ], [ 3 , 4 ]]) b = np.array([[ 5 , 6 ], [ 7 , 8 ]]) c = np.dot(a, b) # 矩阵乘法 print (c) # prints [[19 22] # [43 50]] d = np.linalg.inv(a) # 矩阵逆 print (d) # prints [[-2. 1.] #[1.5
如果你对NumPy的更多用法感兴趣或者有任何关于NumPy的问题,欢迎留言。