返回包含2元组(x,y)的列表x和y为numpy.ndarray

时间:2018-08-03 15:27:27

标签: python arrays numpy

我正在尝试将数据从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))

谢谢

1 个答案:

答案 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]))]