如何在Python中索引0-d数组?

时间:2013-09-01 17:28:16

标签: python numpy

这可能是存储在某些常见问题解答中的一个众所周知的问题,但我无法谷歌解决方案。我正在尝试编写标量参数的标量函数,但允许使用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。 什么是解决此执行的正确方法?

2 个答案:

答案 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]