这可能是存储在某些常见问题解答中的一个众所周知的问题,但我无法谷歌解决方案。我正在尝试编写标量参数的标量函数,但允许使用ndarray参数。该函数应检查其域的正确性的参数,因为域违例可能会导致异常。这个例子演示了我试图做的事情:
import numpy as np
def f(x):
x = np.asarray(x)
y = np.zeros_like(x)
y[x>0.0] = 1.0/x
return y
print f(1.0)
在分配y[x>0.0]=...
python时说0-d arrays can't be indexed
。
什么是解决此执行的正确方法?
答案 0 :(得分:2)
这在NumPy> = 1.9中可以正常工作(在写这篇文章时没有发布)。在以前的版本中,您可以通过额外的np.asarray
调用来解决:
x[np.asarray(x > 0)] = 0
答案 1 :(得分:1)
你可以打电话给f([1.0])
吗?
否则你可以这样做:
x = np.asarray(x)
if x.ndim == 0:
x = x[..., None]