NumPy数组维度

作者: 心际花园 | 来源:发表于2022-12-06 11:33 被阅读0次

    【介绍】

    数组维数

    现在我们已经创建了一维和二维数组,

    让我们深入了解 NumPy 的主要优势之一:处理任何维度数据的能力。

    由于以更高维度保存的数据可能更难处理,我们还将学习如何检查和更新数组形状。

    让我们潜入!

    3D 数组

    就像我们可以通过向 NumPy 提供列表列表来创建 2D 数组一样,我们可以通过创建列表的列表的列表来创建 3D 数组。

    或者,我们可以创建一个 2D 数组的数组。

    为此,我们将 2D 数组列表传递给np.array()

    我们可以将 3D 阵列可视化为一堆形状相同的 2D 数组堆叠在一起。

    array_1_2D = np.array([[1,2], [5,7]])

    array_2_2D = np.array([[8,9], [5,7]])

    array_3_2D = np.array([[1,2], [5,7]])

    array_3D = np.array([array_1_2D, array_2_2D, array_3_2D])

    4D数组

    四维数组可能更难可视化,因为我们没有第四维。将 4D 阵列视为充满 3D 阵列的 2D 阵列。

    array_4D = np.array([array_A_3D, array_B_3D,array_C_3D,array_D_3D,array_E_3D,array_F_3D,array_G_3D, array_H_3D,array_I_3D])

    向量数组

    程序员和 NumPy 文档有时将数组称为向量(vectors)、矩阵(matrices)或张量(tensors)。

    这些是数学术语而不是 NumPy 术语;它们都描述了数组的类型。

    它们之间的区别在于数组具有的维数。

    向量是指具有一维的数组

    NumPy 中的行和列(或水平和垂直)向量之间没有区别,因为没有为 1D 数组指定第二个轴。

    要创建显式水平或垂直的数组,它必须是 2D 数组,以便 NumPy 了解它所在的轴,如右侧的数组。

    由于这些数组是二维的而不是一维的,因此将它们称为向量是不正确的。

    矩阵和张量数组

    相反,在数学中,二维数组称为矩阵

    具有三个或更多维度的数组称为张量

    变形

    我们已准备好学习我们的第一个数组属性和数组方法!

    数组属性是数组实例的属性,例如数组的形状 .shape

    .flatten().reshape()这样的数组方法直接在数组对象本身上调用,而不是像我们对np.array()等NumPy函数那样将数组作为参数传递。

    查找数组的形状

    .shape描述数组的形状,并返回每个维度长度的元组

    array.shape 表示具有3行5列的二维数组。

    
    array = np.zeros((3,5))
    
    print(array)
    
    array.shape
    
    

    行和列

    在 NumPy 中,引用行和列只能让我们走到这一步,因为许多数组都有二维以上的维度。

    我们可以引用第一个维度,而不是引用

    我们可以参考第二个维度,而不是引用

    但是,在处理 2D 数组时,通常回退到行和列术语。

    展平数组

    操作一维数据通常比操作大型多维数组更容易。

    np.flatten() 可以在这里提供帮助:它接受所有数组元素并将它们放在 1D 数组中的一个维度中。

    
    array = np.array([[1,2], [5,7], [6,6]])
    
    array.flatten()
    
    

    重塑数组

    .reshape()方法允许我们重新定义数组的形状,而无需更改构成数组的元素。

    在这个例子中,我们把一个3行2列的二维数组变成一个2行3列的二维数组。

    传递给 .reshape()的形状元组必须与数组中的元素数兼容。

    这个数组不能重新塑造成 (3, 3) 的形状,因为3乘以3就是9,而数组只有6个元素。

    array = np.array([[1,2], [5,7], [6.6]])
    array.reshape((2,3))
    

    让我们开始练习

    好了,是时候自己玩弄数组维度了!

    【一句话总结】

    本节讲如何创建3D数组、4D数组,以及向量、矩阵、张量的概念,以及发现数组的形状和变形

    概念

    向量数组,就是一维数组。

    矩阵数组,就是二维数组。

    张量数据,就是三维及以上数组。

    数组属性,就是数组实例的属性。

    数组方法,直接在数组对象本身上调用的方法。

    事实

    2D数组,使用术语行列。

    3D及以上数组,使用第一个维度,第二个维度。

    程序

    创建3D数组 np.array([array_1_2D, array_2_2D])

    创建4D数组 np.array([array_1_3D, array_2_3D])

    查询数组的形状 array.shape

    展平为一维数组 array.flatten()

    重塑数组形状 array.reshape((num1, num2))

    相关文章

      网友评论

        本文标题:NumPy数组维度

        本文链接:https://www.haomeiwen.com/subject/camwfdtx.html