Numpy多维数组

创建矩阵

我们可以传递以下形式的Python列表,让NumPy创建一个矩阵来表示它们:
在这里插入图片描述
我们也可以使用上一篇中提到的相同方法 ones()zeros() 和 random.random() 等,只要我们给它们一个元组来描述我们正在创建的矩阵的维度:
在这里插入图片描述
另外,还可以从磁盘读取数组,无论是标准格式还是自定义格式。

矩阵计算

如果两个矩阵的大小相同,我们可以使用算术运算符来进行两个矩阵的计算。NumPy将对两个矩阵的对应位置进行操作处理。
在这里插入图片描述
当两个矩阵的大小不同,只有当其中一个矩阵的维度为1时(例如矩阵只有一列或一行),我们才能在不同大小的矩阵上进行这些算术运算,在这种情况下,NumPy将其广播规则用于该操作:
在这里插入图片描述

矩阵点积

NumPy为每个矩阵提供了一种 dot() 方法,可用于与其他矩阵进行点积运算:在这里插入图片描述
上图的底部添加了矩阵尺寸,以强调两个矩阵在它们彼此面对的一侧必须具有相同的尺寸。可以将此操作可视化为如下所示:
在这里插入图片描述

矩阵索引

当操作矩阵时,索引和切片操作变得更加灵活:
在这里插入图片描述

矩阵函数

矩阵中函数的使用与一维数组相同。
在这里插入图片描述
另外,不仅可以求解矩阵中的所有值,还可以使用 axis 参数在行或列之间进行计算:
在这里插入图片描述

矩阵转置和重塑

当需要采用两个矩阵的点积并​​需要对齐它们共同维度时,需要旋转矩阵。NumPy数组有一个方便的属性,T 用于获取矩阵的转置:
在这里插入图片描述
在更高级的应用中,可能会需要切换某个矩阵的维度。在机器学习应用程序中通常就是这种情况,其中某个模型期望输入的某个形状与您的数据集不同。
NumPy的 reshape() 方法在这些情况下很有用。您只需将矩阵所需的新尺寸传递给它,NumPy可以根据您的矩阵推断出正确的维度:
在这里插入图片描述

更多维度

NumPy可以在任何维度上实现上面讲到的知识,其中心数据结构称为 ndarray(N维数组),原因很简单。
在这里插入图片描述
在很多情况下,处理新维度只是在NumPy函数的参数中添加逗号:
在这里插入图片描述
注意:当打印三维NumPy数组时,文本输出会以不同于此处显示的方式显示数组。NumPy打印 n 维数组的顺序是,最后一个轴最快循环,而第一个轴最慢。这意味着 np.ones((4,3,2)) 将打印为:

array([[[1., 1.],
        [1., 1.],
        [1., 1.]],

       [[1., 1.],
        [1., 1.],
        [1., 1.]],

       [[1., 1.],
        [1., 1.],
        [1., 1.]],

       [[1., 1.],
        [1., 1.],
        [1., 1.]]])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多维数组NumPy中的一种数据结构,它可以存储具有多个维度的数据。在NumPy中,可以使用不同的方法来创建多维数组。 一种创建多维数组的方法是使用Python的列表或元组。例如,可以使用array函数来创建一个一维数组,如v = array(\[1,2,3,4\])。可以使用array函数创建一个二维数组,如M = array(\[\[1, 2\], \[3, 4\]\])。\[1\] 另一种创建多维数组的方法是使用NumPy提供的函数。例如,可以使用arange函数创建一个一维数组,如np.array(\[i for i in np.arange(1, 10, 2)\])。可以使用ones函数创建一个全为1的一维数组,如np.ones(5)。可以使用zeros函数创建一个全为0的二维数组,如np.zeros((2, 3))。可以使用random函数创建一个随机数填充的二维数组,如np.random.random((2, 3))。可以使用linspace函数创建一个等间隔的一维数组,如np.linspace(0, 2*np.pi, 5)。\[3\] 这些方法可以根据需要创建任意维度的多维数组多维数组在科学计算和数据分析中非常常见,可以方便地进行矩阵运算和数据处理。 #### 引用[.reference_title] - *1* [Numpy - 多维数据数组](https://blog.csdn.net/weixin_42199542/article/details/106819424)[target="_blank"] [.reference_item] - *2* [Numpy - 多维数据数组](https://blog.csdn.net/weixin_42199542/article/details/106819424)[target="_blank"] [.reference_item] - *3* [Numpy 多维数组简介](https://blog.csdn.net/weixin_30556959/article/details/96998739)[target="_blank"] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值