使用另一个数组更改数组的形状

jho*_*ick 2 python numpy

我想使用其他数组重塑一个数组。

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

>>> array_1
array([[ 0.33333333],
       [ 0.36666667],
       [ 0.16666667],
       [ 0.06666667],
       [ 0.06666667]]
Run Code Online (Sandbox Code Playgroud)

并且array_2,其形状为(1, 5)。我想重塑array_1形状,使其具有的形状array_2array_2每当我运行代码时,的形状都会改变。

jon*_*rpe 5

假设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]])
Run Code Online (Sandbox Code Playgroud)

请注意,这不是就地;它会创建一个新数组,因此您需要分配例如array_1 = array_1.reshape(...)