NumPy 数组与数据类型

PythonBeginner
立即练习

介绍

NumPy 是一个用于 Python 编程语言的库,用于在 Python 中执行数值操作。NumPy 通过使用多维数组提供了一种便捷的方式来处理数值数据。在本教程中,我们将讨论如何创建、访问和修改 NumPy 数组,并探索可用的不同数据类型。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 95%。获得了学习者 98% 的好评率。

创建数组

在终端中打开一个新的 Python 解释器。

python3

在我们开始操作数组之前,需要先创建它们。NumPy 提供了多种创建数组的方法,例如:

1. np.array()

此函数从 Python 列表或元组创建数组。

import numpy as np

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

## 从 Python 元组创建数组
my_tuple = (6, 7, 8, 9, 10)
my_array = np.array(my_tuple)
print(my_array)  ## 输出:[ 6  7  8  9 10]

2. np.zeros()

此函数创建一个给定形状的零数组。

## 创建一个零数组
my_array = np.zeros((3, 4))
print(my_array)
## 输出:
## [[0. 0. 0. 0.]
##  [0. 0. 0. 0.]
##  [0. 0. 0. 0.]]

3. np.ones()

此函数创建一个给定形状的一数组。

## 创建一个一数组
my_array = np.ones((2, 3))
print(my_array)
## 输出:
## [[1. 1. 1.]
##  [1. 1. 1.]]

4. np.arange()

此函数创建一个在给定范围内均匀分布值的数组。

## 创建一个均匀分布值的数组
my_array = np.arange(0, 10, 2)
print(my_array)  ## 输出:[0 2 4 6 8]

5. np.linspace()

此函数创建一个在两个端点之间均匀分布值的数组。

## 创建一个在两个端点之间均匀分布值的数组
my_array = np.linspace(0, 1, 5)
print(my_array)  ## 输出:[0.   0.25 0.5  0.75 1.  ]

访问元素

要访问一维数组中的元素,可以使用其索引。

my_array = np.array([1, 2, 3, 4, 5])
print(my_array[0])  ## 输出:1

要访问多维数组中的元素,需要指定其在每个维度中的位置。

my_array = np.array([[1, 2], [3, 4], [5, 6]])
print(my_array[1, 0])  ## 输出:3

修改元素

我们可以通过为数组中的元素分配新值来修改其值。

my_array = np.array([1, 2, 3])
my_array[2] = 4
print(my_array)  ## 输出:[1 2 4]

我们还可以修改数组的一个切片。

my_array = np.array([1, 2, 3, 4, 5])
my_array[1:4] = [6, 7, 8]
print(my_array)  ## 输出:[1 6 7 8 5]

数据类型

NumPy 数组可以存储不同数据类型的元素,例如整数、浮点数和布尔值。NumPy 提供了多种数据类型,包括:

数据类型 描述
int_ 整数
int8 8 位整数
int16 16 位整数
int32 32 位整数
int64 64 位整数
uint8 无符号 8 位整数
uint16 无符号 16 位整数
uint32 无符号 32 位整数
uint64 无符号 64 位整数
float_ 浮点数
float16 半精度浮点数
float32 单精度浮点数
float64 双精度浮点数
complex_ 复数
complex64 由两个 32 位浮点数表示的复数
complex128 由两个 64 位浮点数表示的复数
bool_ 布尔值
object_ 对象(可以存储任何 Python 对象)

要为数组指定数据类型,可以使用 dtype 参数。

## 创建具有特定数据类型的数组
my_array = np.array([1, 2, 3], dtype=np.float64)
print(my_array)  ## 输出:[1. 2. 3.]

我们还可以使用 astype() 方法将数组转换为不同的数据类型。

## 将数组转换为不同的数据类型
my_array = np.array([1, 2, 3], dtype=np.int32)
my_array = my_array.astype(np.float64)
print(my_array)  ## 输出:[1. 2. 3.]

总结

在本教程中,我们学习了如何创建、访问和修改 NumPy 数组,并探索了可用的不同数据类型。NumPy 是一个强大的库,用于在 Python 中处理数值数据,并提供了许多有用的函数和方法来操作数组。