Python在广播中出现ValueError,但形状正确

0 投票
0 回答
20 浏览
提问于 2025-04-12 02:26

我在一个比较大的Python项目中遇到了问题。这个是我正在尝试实现的代码。我想找出在a0的哪个区间里,点a的坐标落在里面(实际上我需要处理的点会更多,但为了理解这个过程,我先用少量的点来试试。所以逐个处理这些点的方法对我来说行不通!)

len0 = 4
a0 = np.linspace(-1, 1, len0)
a10 = np.reshape(a0, (1, len0))

len1 = 8
a = np.linspace(-1, 1, len1)
a1 = np.reshape(a, (len1, 1))

check = ((a1\<a10\[1:\]) & (a1\>=a10\[:-1\]))

我收到了这个错误信息:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[25], line 9
      6 a = np.linspace(-1, 1, len1)
      7 a1 = np.reshape(a, (len1, 1))
----> 9 check = ((a1<a10[1:]) & (a1>=a10[:-1]))
     10 check

ValueError: operands could not be broadcast together with shapes (8,1) (0,4) 

虽然我特意把它们调整成了(8,1)和(1,4)的形状(而且我用.shape测试它们时,结果确实是(8,1)和(1,4))。你知道问题出在哪里吗?非常感谢!

0 个回答

暂无回答

撰写回答