我正在尝试将数据从excel导入到特定格式,但没有成功
这就是我需要得到的(带有2元组(x,y)的列表,x和y是numpy.ndarray):
data=[(array([[1.0],[10.0]]),array([100.0])), (array([[2.0],[20.0]]),array([200.0])), (array([[3.0],[30.0]]),array([300.0])),(array([[4.0],[40.0]]),array([400.0]))]
这是我最好的结果:
data=[[array([[ 1.],
[10.]]) 100.0]
[array([[ 2.],
[20.]]) 200.0]
[array([[ 3.],
[30.]]) 300.0]
[array([[ 4.],
[40.]]) 400.0]]
这是我的代码:
data1=np.array([1,2,3,4])
data2=np.array([10,20,30,40])
Yarray=np.array([100,200,300,400])
Merge1_2=np.array(zip(data1, data2))
Xarray=Merge1_2.reshape((Merge1_2.shape[0],Merge1_2.shape[1],1))
Data=np.array(zip(Xarray, Yarray))
谢谢
答案 0 :(得分:1)
首先,堆叠X个数组(将一个放在另一个数组的“顶部”)。添加新维度以转换[1,10]
tp [[1],[10]]
。转置结果以交换行和列。最后,压缩3D数组和Y数组:
list(zip(np.stack([data1, data2])[np.newaxis,:,:].T,
Yarray[np.newaxis,:].T))
#[(array([[ 1], [10]]), array([100])),
# (array([[ 2], [20]]), array([200])),
# (array([[ 3], [30]]), array([300])),
# (array([[ 4], [40]]), array([400]))]