此问题已在此处有答案:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()(10个答案)
Putting lambda in NumPy np.fromfunction()
causes TypeError(2个答案)
8天前关闭
当我尝试运行我的代码时,我遇到了这个问题:
ValueError:包含多个元素的数组的真值不明确。使用.any()或.all()
我不知道我应该改变什么和在哪里来解决这个问题。
import numpy as np
n = int(input("Enter the value of n for the nxn matrix: "))
a=np.fromfunction(lambda i, j: n if i==j else (i+1) + (j+1) , (n,n), dtype=int)
print(a)
1条答案
按热度按时间nx7onnlm1#
我想你是假设你的函数被调用了
n * n
次,每次都有一对新的可能的索引0... n。试着打印这些值来看看发生了什么:相反,该函数只被调用一次,并使用可能索引的网格!
在
... if i == j else ...
部分中,在比较了i
和j
之后,您将得到一个具有True和False值的布尔数组,因此numpy不确定该怎么做。相反,对于这种
if-else
逻辑,依赖于np.where
,并且可能使用一点广播来提高效率: