首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向NP阵列中添加新维数

向NP阵列中添加新维数
EN

Stack Overflow用户
提问于 2020-12-01 11:32:58
回答 1查看 22关注 0票数 0

我想弄明白为什么我们要在数组中增加新的维度?

代码语言:javascript
运行
复制
x = np.expand_dims(x, axis=0)

这将向x的数组插入一个新的轴。它的目的是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-01 16:35:41

何时需要expand_dims的示例:

我们有两个数组:

代码语言:javascript
运行
复制
a1 = np.arange(20).reshape(4,5)
a2 = np.array([10, 20, 30, 40, 50])

尽管a1是2-D数组,a2是1-D数组,但是可以添加它们:

代码语言:javascript
运行
复制
a1 + a2

产量:

代码语言:javascript
运行
复制
array([[11, 22, 33, 44, 55],
       [16, 27, 38, 49, 60],
       [21, 32, 43, 54, 65],
       [26, 37, 48, 59, 70]])

也就是说,a2的连续元素被添加到a1中的连续列中( a2中有5个元素,a1中有5个列)。

但是,如果您有另一个数组:

代码语言:javascript
运行
复制
a3 = np.array([10, 20, 30, 40])

并且希望将a3的每个元素添加到a1中的每个中,然后尝试运行:

代码语言:javascript
运行
复制
a1 + a3

您将得到ValueError异常。

要成功执行此操作,a3必须是数组,即:

  • 它必须有2维,
  • 它必须有与a1、
  • 和一列相同的行数。

所以,你可以跑:

代码语言:javascript
运行
复制
a1 + np.expand_dims(a3, axis=1)

得到:

代码语言:javascript
运行
复制
array([[11, 12, 13, 14, 15],
       [26, 27, 28, 29, 30],
       [41, 42, 43, 44, 45],
       [56, 57, 58, 59, 60]])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65089724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档