NumPy:深入理解NumPy Python库

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()

       

创建数组: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])

更多