0
我有一列數組包含相同的行,但不同的列。 我打印出數組的形狀並檢查它們是否有相同的行。Numpy連接爲相同的行但列不同的數組
print ("Type x_test : actual",type(x_dump),x_dump.shape, type(actual), actual.shape, pred.shape)
cmp = np.concatenate([x_test,actual,pred],axis = 1)
('Type x_test : actual', <type 'numpy.ndarray'>, (2420L, 4719L), <type 'numpy.ndarray'>, (2420L,), (2420L,))
這給了我一個錯誤:
ValueError: all the input arrays must have same number of dimensions
我試圖複製使用下面的命令,這個錯誤:
x.shape,x1.shape,x2.shape
Out[772]: ((3L, 1L), (3L, 4L), (3L, 1L))
np.concatenate([x,x1,x2],axis=1)
Out[764]:
array([[ 0, 0, 1, 2, 3, 0],
[ 1, 4, 5, 6, 7, 1],
[ 2, 8, 9, 10, 11, 2]])
我沒有在這裏得到任何錯誤。有沒有人面臨類似的問題?
編輯1:在寫完這個問題後,我發現尺寸是不同的。 @Gareth Rees:精美地解釋了numpy數組(R,1)和(R,)here之間的差別。
上的使用:
# Reshape and concatenate
actual = actual.reshape(len(actual),1)
pred = pred.reshape(len(pred),1)
編輯2:標記關閉這個答案的Difference between numpy.array shape (R, 1) and (R,)重複。
這是什麼問題?結果似乎是正確的。你能更準確地知道你想要做什麼嗎? – fonfonx
@fonfonx我的第一個命令是給出錯誤。形狀也是(2420L,)而不是(2420L,1L)。即使我使用x_dump.reshape(2420,1)它不起作用。爲什麼col值在x_dump.shape中爲空 – Tammy
「形狀也是(2420L,)而不是(2420L,1L)」 - 這是你的問題。你需要重塑形狀爲'(2420L,)'的物體以具有形狀'(2420L,1)'。 – Eric