Numpy error:"ValueError: cannot copy sequence with size 2 to array axis with dimension 4" in python
Numpy error:"ValueError: cannot copy sequence with size 2 to array axis with dimension 4" in python
我的代码有错误,我做了测试代码。
我的测试代码的一些描述:我导入了 numpy
模块。
我为起始坐标做了变量,然后做了 array
7×4.
之后我进入循环 for
并迭代数组,其中我从变量中执行步骤 x by 10
和 y by 5
作为起始坐标。
然后我添加了 x
y
in cortege and cortege in array.
Printed array:3**
当我开始编写代码时,我得到了它:
ValueError: cannot copy sequence with size 2 to array axis with dimension 4
如何解决这个错误?
这是代码:
import numpy as np
#FOR TEST
pose = (640, 154)
all_poses = np.zeros((1, 7, 4))
for i in range(0, 6):
for j in range(0, 4):
y = pose[1] - i * 5
x = pose[0] - j * 10
cortege = (x, y)
all_poses[i, j] = cortege
print(all_poses)
出现错误的原因是 cortege
的尺寸为 1x2,而 all_poses[i, j]
的尺寸为 1x4。所以当你做 all_poses[i, j] = cortege
时,你正在做类似 [0, 0, 0, 0] = [650, 154]
的事情。此处的尺寸不匹配,您会收到错误消息。
避免错误的一种方法是将开始时 all_poses 的尺寸设为 7x2 而不是 7x4,或者执行 all_poses[i, j] = cortege*2
,这将添加 [650, 154, 650, 154 ] 到 all_poses[i, j],从而匹配维度。虽然你为避免错误所做的工作取决于你想用代码实现什么,但你的问题并不清楚。您能否解释一下您究竟希望您的代码做什么?
我的代码有错误,我做了测试代码。
我的测试代码的一些描述:我导入了 numpy
模块。
我为起始坐标做了变量,然后做了 array
7×4.
之后我进入循环 for
并迭代数组,其中我从变量中执行步骤 x by 10
和 y by 5
作为起始坐标。
然后我添加了 x
y
in cortege and cortege in array.Printed array:3**
当我开始编写代码时,我得到了它:
ValueError: cannot copy sequence with size 2 to array axis with dimension 4
如何解决这个错误?
这是代码:
import numpy as np
#FOR TEST
pose = (640, 154)
all_poses = np.zeros((1, 7, 4))
for i in range(0, 6):
for j in range(0, 4):
y = pose[1] - i * 5
x = pose[0] - j * 10
cortege = (x, y)
all_poses[i, j] = cortege
print(all_poses)
出现错误的原因是 cortege
的尺寸为 1x2,而 all_poses[i, j]
的尺寸为 1x4。所以当你做 all_poses[i, j] = cortege
时,你正在做类似 [0, 0, 0, 0] = [650, 154]
的事情。此处的尺寸不匹配,您会收到错误消息。
避免错误的一种方法是将开始时 all_poses 的尺寸设为 7x2 而不是 7x4,或者执行 all_poses[i, j] = cortege*2
,这将添加 [650, 154, 650, 154 ] 到 all_poses[i, j],从而匹配维度。虽然你为避免错误所做的工作取决于你想用代码实现什么,但你的问题并不清楚。您能否解释一下您究竟希望您的代码做什么?