初学者的 12 个 NumPy 操作

NumPy 代表 Numerical Python,是一个 Python 库,主要用于处理数组并对其执行各种数学运算。它是 Python 中科学计算的核心库。 NumPy 经常与其他与数据科学相关的 Python 库一起使用,例如 SciPy、Pandas 和 Matplotlib。

在本文中,您将学习如何使用 NumPy 执行 12 种基本操作。

使用这些 NumPy 示例

您可以通过将代码直接输入到 python 解释器中来运行本文中的示例。以交互模式从命令行启动它以执行此操作。

您还可以从这个 GitHub 存储库访问包含完整源代码的 Python Notebook 文件。

1.如何将NumPy导入为np并打印版本号

您需要使用import关键字在 Python 中导入任何库。 NumPy 通常以np别名导入。通过这种方法,您可以将 NumPy 包称为np而不是numpy

 import numpy as np
print(np.__version__)

输出:

 1.20.1

2. 如何创建一个 NumPy ndarray 对象

NumPy 中的数组对象称为ndarray 。您可以使用array()方法创建 NumPy ndarray对象。 array()方法接受列表、元组或类似数组的对象。

使用元组创建 NumPy 数组

arrObj = np.array((23, 32, 65, 85))
arrObj

输出:

 array([23, 32, 65, 85])

使用列表创建 NumPy 数组

arrObj = np.array([43, 23, 75, 15])
arrObj

输出:

 array([43, 23, 75, 15])

3. 如何创建 0D、1D、2D、3D 和 N 维 NumPy 数组

0D 数组

数组的每个元素都是一个 0D 数组。

 arrObj = np.array(21)
arrObj

输出:

 array(21)

一维数组

以 0D 数组作为元素的数组称为 1D 数组。

 arrObj = np.array([43, 23, 75, 15])
arrObj

输出:

 array([43, 23, 75, 15])

二维数组

以一维数组作为元素的数组称为二维数组。

 arrObj = np.array([[12, 43, 21], [67, 32, 98]])
arrObj

输出:

 array([[12, 43, 21],
[67, 32, 98]])

3D 阵列

具有 2D 数组(矩阵)作为其元素的数组称为 3D 数组。

 arrObj = np.array([[[23, 45, 22], [45, 76, 23]], [[67, 23, 56], [12, 76, 63]]])
arrObj

输出:

 array([[[23, 45, 22],
[45, 76, 23]],

[[67, 23, 56],
[12, 76, 63]]])

n 维数组

您可以使用ndmin参数创建任何维度的数组。

 arrObj = np.array([23, 22, 65, 44], ndmin=5)
arrObj

输出:

 array([[[[[23, 22, 65, 44]]]]])

4. 如何检查数组的维数

您可以使用ndim属性查找数组的维度

 arrObj1 = np.array(21)
arrObj2 = np.array([43, 23, 75, 15])
arrObj3 = np.array([[12, 43, 21], [67, 32, 98]])
arrObj4 = np.array([[[23, 45, 22], [45, 76, 23]], [[67, 23, 56], [12, 76, 63]]])
print(arrObj1.ndim)
print(arrObj2.ndim)
print(arrObj3.ndim)
print(arrObj4.ndim)

输出:

 0
1
2
3

5. 如何访问 1D、2D 和 3D 数组的元素

您可以使用其索引号访问数组元素。对于 2D 和 3D 数组,您需要使用逗号分隔的整数表示每个维度的索引。

 arrObj1 = np.array([43, 23, 75, 15])
arrObj2 = np.array([[12, 43, 21], [67, 32, 98]])
arrObj3 = np.array([[[23, 45, 22], [45, 76, 23]], [[67, 23, 56], [12, 76, 63]]])
print(arrObj1[2])
print(arrObj2[0, 2])
print(arrObj3[0, 1, 2])

输出:

 75
21
23

注意:NumPy 数组也支持负索引。

相关:为什么 Python 是未来的编程语言

6.如何检查NumPy数组对象的数据类型

您可以使用dtype属性检查 NumPy 数组对象的数据类型。

 arrObj1 = np.array([1, 2, 3, 4])
arrObj2 = np.array([1.3, 6.8, 3.5, 9.2])
arrObj3 = np.array(['Welcome', 'to', 'MUO'])
print(arrObj1.dtype)
print(arrObj2.dtype)
print(arrObj3.dtype)

输出:

 int32
float64
<U7

注意

NumPy 使用以下字符来表示内置数据类型:

  • i — 整数(有符号)
  • b — 布尔值
  • O — 对象
  • S——字符串
  • u — 无符号整数
  • f——浮动
  • c — 复数浮点数
  • m — 时间增量
  • M – 日期时间
  • U – Unicode 字符串
  • V — 原始数据(无效)

7. 如何改变 NumPy 数组的数据类型

您可以使用astype(data_type)方法更改 NumPy 数组的数据类型。此方法接受数据类型作为参数并创建数组的新副本。您可以使用诸如“b”代表布尔值、“i”代表整数、“f”代表浮点数等字符来指定数据类型。

将整数数组转换为浮点数组

arrObj = np.array([43, 23, 75, 15])
floatArr = arrObj.astype('f')
floatArr

输出:

 array([43., 23., 75., 15.], dtype=float32)

将浮点数组转换为整数数组

arrObj = np.array([1.3, 6.8, 3.5, 9.2])
intArr = arrObj.astype('i')
intArr

输出:

 array([1, 6, 3, 9], dtype=int32)

相关:适合初学者的Python项目思路

8. 如何将一个 NumPy 数组复制到另一个数组中

您可以使用np.copy()函数将 NumPy 数组复制到另一个数组中。此函数返回给定对象的数组副本。

 oldArr = np.array([43, 23, 75, 15])
newArr = np.copy(oldArr)
newArr

输出:

 array([43, 23, 75, 15])

9. 如何找到 NumPy 数组的形状

数组的形状是指每个维度中元素的数量。您可以使用shape属性找到数组的形状。它返回一个元组,其元素给出相应数组维度的长度。

 arrObj = np.array([[12, 43, 21], [67, 32, 98]])
arrObj.shape

输出:

 (2, 3)

相关:如何在 Python 中构建 API:最流行的框架

10. 如何重塑 NumPy 数组

重塑数组意味着改变它的形状。请注意,您不能将数组重塑为任意形状。两种形状中重塑所需的元素数量必须相同。

 arrObj = np.array([43, 23, 75, 15, 34, 45])
reshapedArr = arrObj.reshape(2, 3)
reshapedArr

输出:

 array([[43, 23, 75],
[15, 34, 45]])

在上面的示例中,一维数组被重新整形为二维数组。

11. 如何展平 NumPy 数组

展平数组意味着将多维数组转换为一维数组。您可以使用reshape(-1)展平数组。

 arrObj = np.array([[12, 43, 21], [67, 32, 98]])
flattenedArr = arrObj.reshape(-1)
flattenedArr

输出:

 array([12, 43, 21, 67, 32, 98])

注意:您还可以使用其他方法展平数组,例如numpy.ndarray.flatten()numpy.ravel()

12. 如何对 NumPy 数组进行排序

您可以使用numpy.sort()函数对 NumPy 数组进行排序。

对一维整数数组进行排序

arrObj = np.array([43, 23, 75, 15])
np.sort(arrObj)

输出:

 array([15, 23, 43, 75])

对一维字符串数组进行排序

arrObj = np.array(["Python", "JavaScript", "Solidity", "Golang"])
np.sort(arrObj)

输出:

 array(['Golang', 'JavaScript', 'Python', 'Solidity'], dtype='<U10')

对二维整数数组进行排序

arrObj = np.array([[12, 43, 21], [67, 32, 98]])
np.sort(arrObj)

输出:

 array([[12, 21, 43], [32, 67, 98]])

使用内置方法和函数使您的代码健壮

Python 是最流行的编程语言之一。它用于各种领域,如 Web 开发、科学和数字应用程序、软件开发和游戏开发。了解 Python 中的内置方法和函数总是很好的。它们可以缩短您的代码并提高其效率。