gpt4 book ai didi

python - 根据默认大小 reshape np.array

转载 作者:太空宇宙 更新时间:2023-11-04 04:15:16 25 4
gpt4 key购买 nike

有 2 个 np.arrays,我想从形状 (12,) 引用 array2 reshape np.array1 与形状 (4,):

array1 = np.array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])array1.shape返回:(12,)

array2 = np.array([ 12, 34, 56, 78])array2.shape返回:(4,)

我尝试执行reshape:

array1.reshape(array2.shape)

但是,有一个错误:ValueError:无法将大小为 12 的数组 reshape 为形状 (4,)

因此,预期结果是包含 4 个元素的 array1:np.array([ 1, 2, 3, 4]),而不是 12。

如果有任何想法和帮助,我将不胜感激。

最佳答案

如果我正确理解您的要求,我认为您正在寻找的是简单的切片:

In [140]: array2 = np.array([ 12,  34,  56,  78])
In [135]: a_sliced = array1[:array2.shape[0]]
In [136]: a_sliced.shape
Out[136]: (4,)

如果 array2 是多维的,则使用 approach suggested by Mad Physicist :

sliced_arr = array1[tuple(slice(0, d) for d in array2.shape)]

或者,如果您打算将数组分成三等份,则使用 numpy.split()如:

# split `array1` into 3 portions
In [138]: np.split(array1, 3)
Out[138]: [array([1, 2, 3, 4]), array([5, 6, 7, 8]), array([ 9, 10, 11, 12])]

关于python - 根据默认大小 reshape np.array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55581685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com