python中的广播数组

2024-03-28 12:04:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用以下代码将大小(3,1)的数组重塑为(3,1):

import numpy as np
a=np.random.random(size=(4,3,1))
a[1]=a[1].reshape(3,)

但出现以下错误:

ValueError: could not broadcast input array from shape (3) into shape (3,1)

如何解决。你知道吗


Tags: 代码importnumpysizeas错误npnot
1条回答
网友
1楼 · 发布于 2024-03-28 12:04:59

据我所知,您的数组由数组的数组(a.shape = (4,3,1))组成。 我确实理解a[1].shape = (3,1)似乎与a[1].shape = (3,)没有太大区别,但是程序语言并不理解((3,1) != (3,)),这意味着(3,1)(3,)是完全不同的,因为a[2],a[3]仍然有shape = (3,1),数组中的每个数组必须有相同的形状(3,1)。因此,您需要一次重新调整所有数组的形状,或者将a[1]复制到另一个变量,然后重新调整此变量的形状。你知道吗

a = a.reshape(4,3) 

使用a[1]

或者:

b = a[1]

b = b.reshape(3,)

相关问题 更多 >