使用现有数据创建 NumPy 数组

Beginner

介绍

NumPy 是一个流行的 Python 库,提供了对数组的支持。它提供了多种从现有数据创建数组的方法。在本实验中,我们将学习如何使用现有数据创建数组。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到 Notebook 标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时可以向 Labby 提问。请在课程结束后提供反馈,我们将及时为你解决问题。

使用元组创建数组 - 使用 numpy.asarray

numpy.asarray 函数用于将 Python 序列转换为 ndarray。让我们使用 numpy.asarray 通过元组创建一个数组。

import numpy as np

## python tuple
l = (34,7,8,78)
## 使用元组创建数组
a = np.asarray(l)

print(type(a))
print(a)

输出:

<class 'numpy.ndarray'>
[34 7 8 78]

在上面的代码中,我们通过将元组 l 作为输入传递给 numpy.asarray() 函数创建了一个数组,并将返回的数组存储在变量 a 中。输出显示 a 是一个 numpy.ndarray

使用列表创建数组 - 使用 numpy.asarray

现在,我们将使用多个列表创建一个数组。

import numpy as np

## python list
l = [[1,2,3],[8,9],[5,7]]
## 从列表创建数组
b = np.asarray(l)

print(type(b))
print(b)

输出:

<class 'numpy.ndarray'>
[list([1, 2, 3]) list([8, 9]) list([5, 7])]

在上面的代码中,我们通过将列表 l 作为输入传递给 numpy.asarray() 函数创建了一个数组,并将返回的数组存储在变量 b 中。输出显示数组中的元素是列表,而不是单独的元素。

使用 numpy.frombuffer 创建数组

numpy.frombuffer 函数用于通过指定的缓冲区创建数组。

import numpy as np

## 初始化字节
l = b'LabEx!'
print(type(l))

a = np.frombuffer(l, dtype = "S1")
print(a)
print(type(a))

输出:

<class 'bytes'>
[b'S' b't' b'u' b'd' b'y' b'T' b'o' b'n' b'i' b'g' b'h' b't' b'!']
<class 'numpy.ndarray'>

在上面的代码中,我们使用 numpy.frombuffer 函数创建了一个数组,其中我们初始化了字节并返回了一个类型为 'S1' 的一维数组。执行时,此函数会输出给定字节字符串中的所有单独字符。

使用 numpy.fromiter 创建数组

numpy.fromiter 函数用于通过可迭代对象创建 ndarray。

import numpy as np

## 使用 python 元组
tup = (2,4,6,20)
## 创建迭代器
it = iter(tup)

## 使用迭代器创建 ndarray
x = np.fromiter(it, dtype = float)

print(x)
print(type(x))

输出:

[ 2. 4. 6. 20.]
<class 'numpy.ndarray'>

在上面的代码中,我们首先创建了一个元组 tup,然后使用它创建了一个迭代器。接着,我们使用该迭代器创建了一个浮点类型的 numpy 数组。

总结

在本实验中,我们学习了使用 NumPy 库中的现有数据创建数组的不同方法。我们使用了不同的库函数,通过元组、列表、缓冲区(From Buffer)和迭代器(From Iter)来创建数组。通过这些方法,我们可以轻松地利用现有数据创建 NumPy 数组,并对其进一步进行分析、计算和操作。