2015-07-21 70 views
0

我想使用其他數組重塑一個數組。使用另一個數組更改陣列的形狀

說我有array_1,其shape(5, 1),例如:

>>> array_1 
array([[ 0.33333333], 
     [ 0.36666667], 
     [ 0.16666667], 
     [ 0.06666667], 
     [ 0.06666667]] 

array_2,其形狀(1, 5)。我想要重塑array_1,以便它獲得array_2的形狀。每次運行代碼時,array_2的形狀都可以更改。

+0

這些是numpy的陣列? –

+0

yes.i在問題中添加了一個示例數組。 –

+0

@AnandSKumar謝謝撤消那項工作... – jonrsharpe

回答

1

假設numpy陣列,只需使用array_1.reshape(array_2.shape)

>>> import numpy as np 
>>> arr1 = np.arange(5).reshape(5, 1) 
>>> arr2 = np.arange(5, 10).reshape(1, 5) 
>>> arr1 
array([[0], 
     [1], 
     [2], 
     [3], 
     [4]]) 
>>> arr2 
array([[5, 6, 7, 8, 9]]) 
>>> arr1.reshape(arr2.shape) 
array([[0, 1, 2, 3, 4]]) 
>>> arr2.reshape(arr1.shape) 
array([[5], 
     [6], 
     [7], 
     [8], 
     [9]]) 

請注意,這不是就地;它會創建一個新的數組,因此您需要指定例如array_1 = array_1.reshape(...)

1

你只應該在這種情況下使用numpy.transpose

import numpy as np 

array_1 = [[ 0.33333333], 
[ 0.36666667], 
[ 0.16666667], 
[ 0.06666667], 
[ 0.06666667]] 

print "Shape of original array_1: ", np.shape(array_1) 

array_1 = np.transpose(array_1) 

print array_1 
print "Shape of transposed array_1: ", np.shape(array_1) 

輸出:

Shape of original array_1: (5, 1) 
[[ 0.33333333 0.36666667 0.16666667 0.06666667 0.06666667]] 
Shape of transposed array_1: (1, 5)