此numpy数组功能的正式名称是什么?广播?有一个numpy的文档链接来描述吗?

时间:2019-03-05 23:04:25

标签: python numpy

我正在阅读NumPy的源代码。以下是从np.indices中提取的。

as21 = np.array([[0], [1]])
n23 = np.empty((2, 2, 3), dtype=object)
n23[0] = as21
print(n23)

给予

[[[0 0 0]
  [1 1 1]]

 [[None None None]
  [None None None]]]

我所知道的是: broadcasting的概念 the demos of broadcasting(添加,时间和其他一些类似的运算符)

我需要知道或确认的是 此功能是广播的另一种应用吗? 如果是,是否有一个numpy文档链接来描述? 或描述所有可以应用广播的运营商的链接。

2 个答案:

答案 0 :(得分:0)

因此n23被创建为(2,2,3)形状的对象dtype数组。使用此dtype,所有初始值均为None

as21的形状为(2,1)。

n23[0],又名n23[0,:,:]是(2,3)形阵列。

是的,将(2,1)分配给(2,3)涉及广播。也就是说,as21的1号尺寸被复制以匹配n23[0]的3号。

(2,1) => (2,3)

广播有两个基本步骤:

- matching number of dimensions, by adding size 1 dimenions at the front (if needed)

- adjusting size 1 dimensions to match others.

通过这些规则n23[:] = as21也将起作用。

(2,1)=>(1,2,1)=>(2,2,3)

答案 1 :(得分:0)

“每个分配的值的长度都应等于数组中字段数的元组,而不是列表或数组,因为它们将触发numpy的广播规则。”

来自Indexing and Assignment to Structured arrays