NumPy创建数组

栏目: numpy 发布时间:2024-12-02

在使用 NumPy 进行科学计算时,创建数组是第一步。本文将详细介绍如何使用 NumPy 创建数组。

1. 导入 NumPy 库

在使用 NumPy 之前,需要先导入它。通常,我们使用 import numpy as np 来导入 NumPy,并给它一个别名 np,这样可以在后续代码中方便地引用 NumPy 的函数和属性。

import numpy as np

2. 使用 np.array 创建数组

np.array 是创建 NumPy 数组的最基本方法。你可以通过传递一个 Python 列表(或嵌套列表)给 np.array 来创建一个 NumPy 数组。

# 创建一个一维数组
one_d_array = np.array([1, 2, 3, 4, 5])
print(one_d_array)
# 输出: [1 2 3 4 5]

# 创建一个二维数组(矩阵)
two_d_array = np.array([[1, 2, 3], [4, 5, 6]])
print(two_d_array)
# 输出:
# [[1 2 3]
#  [4 5 6]]

3. 使用特殊函数创建数组

NumPy 提供了一系列特殊函数来创建具有特定形状或值的数组。

  • np.zeros:创建一个所有元素都是 0 的数组。
  • np.ones:创建一个所有元素都是 1 的数组。
  • np.empty:创建一个未初始化的数组(其值可能是垃圾值)。
  • np.arange:创建一个类似于 Python 内置 range 函数的数组。
  • np.linspace:在指定范围内创建一个等差数列。
  • np.logspace:在指定范围内创建一个对数等分的数列。
  • np.eye:创建一个单位矩阵(对角线为 1,其余为 0)。
  • np.full:创建一个用指定值填充的数组。
  • np.full_like:创建一个形状与给定数组相同,并用指定值填充的数组。
  • np.identity:创建一个单位矩阵(与 np.eye 类似,但只用于二维数组)。
# 创建一个 3x3 的零矩阵
zeros_array = np.zeros((3, 3))
print(zeros_array)
# 输出:
# [[0. 0. 0.]
#  [0. 0. 0.]
#  [0. 0. 0.]]

# 创建一个 2x4 的全 1 矩阵
ones_array = np.ones((2, 4))
print(ones_array)
# 输出:
# [[1. 1. 1. 1.]
#  [1. 1. 1. 1.]]

# 创建一个从 0 到 9 的数组
arange_array = np.arange(10)
print(arange_array)
# 输出: [0 1 2 3 4 5 6 7 8 9]

# 创建一个从 0 到 1 的 5 个等间距的数
linspace_array = np.linspace(0, 1, 5)
print(linspace_array)
# 输出: [0.   0.25 0.5  0.75 1.  ]

# 创建一个 3x3 的单位矩阵
eye_array = np.eye(3)
print(eye_array)
# 输出:
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

4. 从现有数据创建数组

你还可以从现有的 Python 列表、元组、集合或其他 NumPy 数组创建新的 NumPy 数组。

# 从列表创建数组
list_array = np.array([1, 2, 3, 4, 5])
print(list_array)
# 输出: [1 2 3 4 5]

# 从元组创建数组
tuple_array = np.array((1, 2, 3, 4, 5))
print(tuple_array)
# 输出: [1 2 3 4 5]

# 从另一个 NumPy 数组创建数组(实际上是创建了一个视图或副本)
copy_array = np.array(list_array)
print(copy_array)
# 输出: [1 2 3 4 5]

注意:从另一个 NumPy 数组创建数组时,默认是创建一个副本(除非使用了特定的参数或方法,如 np.asarray,它尝试不创建副本)。

5. 指定数据类型

在创建数组时,可以通过 dtype 参数指定数组中元素的数据类型。

# 创建一个整数数组
int_array = np.array([1, 2, 3, 4, 5], dtype=np.int32)
print(int_array.dtype)
# 输出: int32

# 创建一个浮点数数组
float_array = np.array([1.1, 2.2, 3.3], dtype=np.float64)
print(float_array.dtype)
# 输出: float64

总结

NumPy 提供了多种方法来创建数组,包括从 Python 列表或元组创建数组、使用特殊函数创建具有特定形状或值的数组、从现有 NumPy 数组创建数组等。通过指定 dtype 参数,还可以控制数组中元素的数据类型。希望本文能帮助你更好地理解和使用 NumPy 创建数组。

本文地址:https://www.tides.cn/p_numpy-create-array