NumPy 是 Python 中科学计算的核心库。
- 基础的 Python 库,如 pandas、SciPy 和 Matplotlib,都是建立在 NumPy 的 API 之上的。机器学习库,如 TensorFlow 和 scikit-learn,也使用 NumPy 数组作为输入。
NumPy 数组
数组是 NumPy 中的主要对象;它是一个类似网格的结构,用于存储数据。数组可以具有任意数量的维度,每个维度的长度也可以是任意的。
从列表创建一维数组
- 我们可以通过将列表作为参数传递给 np.array 函数来从 Python 列表创建数组。
- 该数组的数据类型是 NumPy 的 nd.array,或称为 n 维数组。
python_list =[3,2,5,9,7,1,4,3,6]
array = np.array(python_list)
array
array([3,2,5,9,7,1,4,3,6)
从列表创建二维数组
- 要创建一个二维数组,可以将一个列表的列表传递给 np.array。一个列表的列表的列表会生成一个三维数组。
python_list_of_lists = ([[3,2,5],
[9,7,1],
[4,3,6]])
数组与Python列表
*Python列表可以包含多种不同的数据类型:
python_list = ['beep', False, 56, .924, [3,2,5]]
- NumPy数组必须是相同的数据类型。
- 这使得NumPy非常高效:因为数组中的每个元素必须都是相同的,所以NumPy无需检查每个元素的数据类型。
- 只有单一数据类型也意味着NumPy数组在内存中占用的空间比存储为Python列表时要少。
numpy_boolean_array = [[True, False], [True, True], [False, True]]
numpy_float_array = [1.9, 2.4, 3.1, 6.4]
从头创建数组
-
- 有许多Numpy函数用于创建数组。 使用以下函数,例如
-
- np.zeros()
-
- np.random.random()
-
- np.arange()
-
- 有许多Numpy函数用于创建数组。 使用以下函数,例如
创建数组:np.zeros()
-
- np.zeros() 创建一个充满零的数组。我们可以像使用空的Python列表一样使用零数组,稍后再填充数据。我们通过一个整数元组告诉np.zeros()所需数组的形状,每个整数代表给定维度的长度。
-
- 元组是用于存储数据集合的Python数据类型,类似于列表。元组是用括号()创建的。
-
- 在这里,当np.zeros()接收到一个包含五和三的元组时,它会创建一个具有五行三列的数组。
np.zeros((5,3))
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.].
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
创建数组:np.random.random()
- np.random.random() 也接受一个元组作为所需数组的形状。该数组将由 0 到 1 之间的随机浮点数构成。
np.random.random((2,4))
array([[0.8852461, 0.08564132, 0.33463107, 0.53337117],
[0.69933362, 0.09295327, 0.93617865, 0.04532187]])
- np.random.random() 被称为这个,是因为 np.random.random() 是 NumPy 随机模块中的一个函数,该模块包含用于随机抽样的有用函数。
np.random. {NumPy模块}
random() {函数名}
创建数组:np.arange()
- np.arange() 根据给定的起始值和结束值创建一个均匀间隔的数字数组。
默认情况下,np.arange() 创建一个连续整数的数组。起始值包含在输出数组中,但结束值不包含。如果范围从零开始,可以省略起始值。如果传递第三个参数,它将被解释为步长值。现在,元素之间的期望距离是三。
*np.arange() 对于绘图特别有用!
np.arange(-3,4)
array([-3, -2, -1, 0, 1, 2, 3])
np.arange(4)
array([0, 1, 2, 3])
np.arange(-3, 4, 3)
array([-3, 0, 3])