介绍numpy数组
课程内容
NumPy和Python生态系统
NumPy是Python科学计算的核心库。
基本的Python库,如pandas、SciPy和Matplotlib,都构建在NumPy的API之上。
机器学习库如TensorFlow和scikit-learn也是如此,它们使用NumPy数组作为输入。
任何在Python中使用数字的人都会遇到NumPy数组。
那么它们是什么,我们如何创造它们?
Numpy数组
数组是 NumPy 中的主要对象;
它是一个保存数据的网格状结构。
数组可以有任意数量的维度,每个维度可以是任意长度。
导入Numpy
要开始使用,请导入 NumPy,将导入别名为 np。
import numpy as np
从列表创建一维数组
我们可以通过将列表作为参数传递给 np.array()
函数来从 Python 列表创建数组。
此数组的数据类型是 NumPy n-d 数组或 n 维数组。
python_list = [3, 2, 5, 8, 4, 9, 7, 6, 1]
array = np.array(python_list)
array
type(array)
从列表创建 2D 数组
要创建二维数组,请向 npd.array()
传递列表的列表。
如您所料,列表的列表将生成一个二维数组。
python_list_of_lists =[[3,2,5],[9,7,1],[4,3,6]]
np.array(python_list_of_lists)
数组 vs. Python 列表
为什么使用数组而不是列表?
虽然 Python 列表可以包含许多不同的数据类型,但 NumPy 数组中的所有元素都必须是相同的数据类型。
这使得 NumPy 非常高效:NumPy 不需要检查数组中每个元素的数据类型,因为它们必须都相同。
只有一种数据类型也意味着 NumPy 数组在内存中占用的空间比存储为 Python 列表的相同信息要少。
从头开始创建数组
我们已经看到了如何从 Python 列表创建 NumPy 数组。
我们还可以使用 np.zero()
、np.random.random()
和 np.arange()
等函数从头开始创建它们。
创建数组: np.zeros()
np.zeros()
创建一个充满零的数组。
我们可以像使用空的 Python 列表一样使用 zeros 数组,稍后用数据填充它。
我们使用整数元组告诉 np.zeros()
所需数组的形状,每个整数组代表给定维度的长度。
元组是用于存储数据集合的 Python 数据类型,类似于列表。
元组是使用括号而不是用于列表的方括号创建的。
在这里,当 np.zeros((5,3))
被赋予一个由 5 和 3 组成的元组时,它会创建一个包含五行和三列的数组。
创建数组:np.random.random()
np.random.random()
也接受具有所需数组形状的元组。
数组将由 0 到 1 之间的随机浮点数组成。
为什么np.random.random()
这样称呼,而不仅仅是np.random()
?
这是因为 np.random.random()
是 NumPy 随机模块中的一个函数,其中包含用于随机采样的有用函数。
np.random.random((2,4))
创建数组: np.arange()
np.arange()
根据给定的开始和停止值创建一个均匀分布的数字数组。
默认情况下,np.arange()
创建一个连续整数数组。
起始值包含在输出数组中,但停止值不包含在内。
如果范围从零开始,则可以省略起始值。
如果传递第三个参数,则将其解释为步长值。
现在,元素之间的所需距离为 3。np.range()
对于绘图特别有用!
np.arange(-3,4)
np.arange(4)
np.arange(-3,4,3)
from matplotlib import pyplot as plt
plt.scatter(np.arange(0,7),np.arange(-3,4))
plt.show()
开始练习
让我们将您的新技能用于您可能熟悉的网格状数据:数独游戏!
【一句话总结】
本节主要介绍Numpy数组和如何创建numpy数组。
什么是Numpy数组
数组是 NumPy 中的主要对象。
数组是一个保存数据的网格状结构。
数组可以有任意数量的维度,每个维度可以是任意长度。
数组元素的数据类型都一样,不需要检查数据类型,内存也小。
如何导入numpy
import numpy as np
如何创建numpy
从列表创建 np.array([])
np.zero((3,5))
创建5行3列的0数组
np.random.random((2,4))
创建2行4列的随机浮点数组
np.arange(-3,4,2)
创建从-3开始不包括4,步长为2的一维连续整数数组。
在可视化中创建图表时特别有用。