【问题标题】:Changing structure of 2d numpy arrays改变二维 numpy 数组的结构
【发布时间】:2021-12-06 23:26:11
【问题描述】:

我有一个名为 my_array 的 numpy 数组

当我打印 glove_ds.shape 时,我得到 2049 当我打印glove_ds[i].shape时,我得到300(我在2049的范围内)

我想将 glove_ds 形状更改为 2049*300(当我调用 glove_ds.shape 时)。我该怎么做?

所以我的代码是:

print(glove_ds.shape, glove_ds[0].shape)

答案是

> (2429,) (300,)

我希望得到答案

(2429*300)

【问题讨论】:

  • 你能发布一个最小的例子吗?形状通常以元组形式给出,因此如果您只指定整数值,则很难回答您的问题
  • 我会更新我的问题
  • 你有一个 numpy 数组吗?或者您是否创建了一个具有对象数据类型的数组?或者你在谈论一个 xarray 数据集,因为你称之为 ds?
  • 我想创建一个我想成为二维数据集的数据集。 raws数=样本数,列数=特征数
  • 问题显然是glove_ds 的初始化/生成位置。如果没有这些代码部分,就很难查明问题所在。我敢打赌你会在某处混合数据类型,例如通过尝试使用 tensorfow 张量列表初始化 numpy 数组 - 这可以解释为什么两者都有 .shape 函数。

标签: python arrays python-3.x list numpy


【解决方案1】:

您是如何创建阵列 glove_ds 的?你不应该使用“dtype=object”。 每个glove_ds[i]的长度都一样吗?

【讨论】:

  • 您在回答中要求提供其他信息。请在回答问题之前为此写下评论。
  • 是的,是一样的
  • 如果 glove_ds[i] 是数组或列表,则尝试打印数据类型
【解决方案2】:

my_array.size 怎么样 - 它返回数组 https://note.nkmk.me/en/python-numpy-ndarray-ndim-shape-size/ 中的元素总数,还是必须打印为 2 个数字之间的倍数?那么my_array.shape和my_array.len就可以使用了

【讨论】:

  • 如numpy docs 中所述,my_array.size 与 np.prod(my_array.shape) 相同,但数据类型不同。
  • 对吗?即,如果 OP 想要数组中元素的总数,那么 size 是要走的路。但是,尚不清楚 OP 是否想要计算的 结果 或像计算一样打印它,例如,如果 OP 想要打印 15 或 3*5
猜你喜欢
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 2021-12-28
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多