【问题标题】:Numpy matrix broadcasting issuesNumpy矩阵广播问题
【发布时间】:2020-07-22 18:20:41
【问题描述】:

data 是一个 1256x277 矩阵

np.array_split(ary=data, indices_or_sections=10, axis=1) 为我们提供了一个 1256x28 数据列表

但是当我这样做时:

sub_data_ndarray = np.array(object=np.array_split(ary=data, indices_or_sections=10, axis=1))

我得到错误:

ValueError: 无法将输入数组从形状 (1256,28) 广播到 形状 (1256)

?

【问题讨论】:

  • 检查np.array_splt产生的所有数组是否具有相同的形状。
  • @hpaulj 结果是七个 1256x28 矩阵和三个 1256x27 矩阵。
  • 那么你不能将它们重新组合成一个 3d 数组。
  • @hpaulj 嗯,但我不想这样做。我想将结果列表 [sub_data, sub_data, sub_data] 转换为 ndarray,以便我可以使用 ndarray 选择操作。而那些 sub_data 恰好是一个矩阵。
  • 你想到了什么样的ndarray selection operations?充其量你可以制作一个对象 dtype 数组。我可以告诉你怎么做,但是......

标签: python numpy matrix


【解决方案1】:

试试np.stack:

A = [1,2,3,4,5,6,7,8,9,0]
B = [1,2,3,4,5,6,7,8,9,0]
C = np.stack((A, B))

【讨论】:

  • np.array((A,B)) 也适用于您的列表。我预计stack 也会在 OP 的列表中出现问题,尽管它会给出不同(并且可能更清晰)的错误消息。
猜你喜欢
  • 2015-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
  • 2016-06-27
相关资源
最近更新 更多