我想使用其他数组重塑一个数组。
说我有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 :(得分:4)
假设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 :(得分:2)
在这种情况下你应该使用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)