【问题标题】:Creating numpy array problem ( could not broadcast input array from shape (2) into shape (1) ) [duplicate]创建numpy数组问题(无法将输入数组从形状(2)广播到形状(1))[重复]
【发布时间】:2020-02-11 02:20:33
【问题描述】:

创建这个 numpy 数组有什么问题

np.array( [np.array([1]), np.array([ [1,2] ])] )

# Error: could not broadcast input array from shape (2) into shape (1)

不过这个没问题

np.array( [np.array([1]), np.array([ [1,2], [1,2] ])] )

为不同形状的不同事物创建容器数组有什么问题?

【问题讨论】:

  • 在这两种情况下,np.array 都是在捏造。在第二个中,它创建了一个包含 (1,) 和 (2,2) 数组的 2 元素对象数组。首先,(1,) 和 (1,2) 的组合采用不同的路径并以错误结束。
  • 这不是一种可靠的方法来制作具有任意输入组合的对象数组。
  • @hpaulj 在 numpy 中创建一些不同事物的数组有什么问题?
  • 阅读副本

标签: python arrays numpy


【解决方案1】:

如果最终输出可以是一维向量,np.append 可能会解决问题:

np.append(np.array([1]),np.array([[1,2]]))

如果最终所需数组的每个元素都是不同的维度,你需要它是一个 numpy 对象吗?列表应该有效final = [np.array([1]), np.array([ [1,2], [1,2] ])]

【讨论】:

  • 你能解释一下用 np.array 创建这个数组有什么问题吗?
  • numpy 正在尝试将 n 维矩阵运算引入 python。所以results[1,4,5] 返回一些数字。数组必须是矩形 (2d)、框 (3d)、n 矩形 (n-dim)。当您尝试组合具有不同形状的数组时,就像您尝试用一张 1x1" 纸和一个 2x2" 盒子制作一个盒子。它们不会制作一个连续的对象。在您的示例中,如果 numpy如果允许你,results[1,2] 是什么意思?
猜你喜欢
  • 2020-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 2018-08-30
  • 2021-06-20
相关资源
最近更新 更多