ValueError:无法将大小为 5 的序列复制到维度为 2 的数组轴
Posted
技术标签:
【中文标题】ValueError:无法将大小为 5 的序列复制到维度为 2 的数组轴【英文标题】:ValueError: cannot copy sequence with size 5 to array axis with dimension 2 【发布时间】:2016-01-02 03:00:30 【问题描述】:使用 numpy 1.7.1 下面的代码工作并产生如图所示的结果,
import pandas as pd
import numpy as np
d1 = pd.DataFrame('Name': [1, 1, 1, 1, 1],'number': [1, 1, 1, 1, 1])
d2 = pd.DataFrame('Name': [1, 1, 1, 1, 1], 'number': [1, 1, 1, 1, 1])
result = np.array([d1,d2])
Value of result is,
array([ Name number
0 1 1
1 1 1
2 1 1
3 1 1
4 1 1,
Name number
0 1 1
1 1 1
2 1 1
3 1 1
4 1 1], dtype=object)
但是,在 numpy 1.9.2 中,相同的输入会产生如下异常,
“ValueError: 无法将大小为 5 的序列复制到维度为 2 的数组轴”
需要知道 numpy 不支持此操作的原因或可以在两个版本中使用的一些通用修复。在 numpy 的两个版本中,我想要与 1.7.1 中相同的输出。
【问题讨论】:
【参考方案1】:我能够使用 numpy 1.9.2 重现您的问题。似乎 numpy 正在尝试做一个 vstack。当形状相同时。我尝试了以下方法,并且成功了。
result = np.empty(2, dtype=object)
result[:]= [d1, d2]
result
array([ Name number
0 1 1
1 1 1
2 1 1
3 1 1
4 1 1,
Name number
0 1 1
1 1 1
2 1 1
3 1 1
4 1 1], dtype=object)
【讨论】:
我自己在有限的时间内无法解决这个问题,这样的答案很节省时间!以上是关于ValueError:无法将大小为 5 的序列复制到维度为 2 的数组轴的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:无法将大小为0的序列复制到维度为56的数组轴
无法将列表转换为数据框。不断收到错误“ValueError: Must pass 2-d input.shape=(1, 4, 5)”
ValueError:无法将字符串转换为浮点数:''20,99''