【发布时间】:2021-12-29 01:53:10
【问题描述】:
>>> Ne['State_1_spe_sum'].shape
(3, 1)
>>> Ne['State_1_inc'].shape
(63, 1)
>>> np.vstack((Ne['State_1_spe_sum'], Ne['State_1_inc']))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-58-2c1ac75279f6> in <module>
----> 1 np.vstack((Ne['State_1_spe_sum'], Ne['State_1_inc']))
<__array_function__ internals> in vstack(*args, **kwargs)
~\anaconda3\lib\site-packages\numpy\core\shape_base.py in vstack(tup)
281 if not isinstance(arrs, list):
282 arrs = [arrs]
--> 283 return _nx.concatenate(arrs, 0)
284
285
<__array_function__ internals> in concatenate(*args, **kwargs)
TypeError: invalid type promotion
据我了解,使用 numpy vstack 堆叠数组需要数组具有相同的维度和列(用于 vstacking)。我符合要求,但为什么我不断收到此错误?我试着做np.concatenate,但它给了我同样的错误。任何人都可以帮助我了解发生了什么吗?
【问题讨论】:
-
你的数组的数据类型是什么?
-
我刚查了一下,是'
-
什么是
Ne?结构化数组?熊猫数据框?字典?我猜测基于字符串“索引”。它不是一个普通的数值数组。 -
np.vstack只是调整尺寸,并将任务传递给concatenate。这就是回溯显示的内容。错误消息说参数的 dtypes 之间存在一些不匹配。 -
Ne是我在读取数据时使用 for 循环附加变量的字典。
标签: python arrays numpy vstack