Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中将numpy标量很好地传递给函数?_Python_Numpy - Fatal编程技术网

如何在python中将numpy标量很好地传递给函数?

如何在python中将numpy标量很好地传递给函数?,python,numpy,Python,Numpy,我有一个numpy数组a,希望将其元素传递给循环中的函数func: a = np.array([0, 0, 1], dtype='bool') def func(x): if x is True: # do something else: # do something else for i in np.arange(3): res = func(a[i]) 我希望a[I]是,但事实上它是,我每次都必须使用a[I].item()将其转换

我有一个numpy数组
a
,希望将其元素传递给循环中的函数
func

a = np.array([0, 0, 1], dtype='bool')

def func(x):
    if x is True:
        # do something
    else:
        # do something else

for i in np.arange(3):
    res = func(a[i])
我希望
a[I]
,但事实上它是
,我每次都必须使用
a[I].item()
将其转换为python标量,这很容易出错

for i in np.arange(3):
    res = func(a[i].item())

有更好的方法吗?

对于a.tolist()中的x:res=func(x)
可能会起作用。在列表上迭代要比在数组上迭代快。但是你确定你的
func
被一个
bool\ucode>对象而不是一个普通的python
bool
对象所困扰吗?如果你的函数是正确的duck类型,这应该不是问题。@hpaulj谢谢你的提示。你是对的。我发现,如果我将if条件
if x为True:
更改为
if x:
,则类型不再是问题,但我仍然想知道这两个if条件之间的区别。
是对对象标识的测试<代码>如果x:
测试值“真实性”<代码>1
、'foobar'、
[123]
均为“true”,但与唯一的
true
布尔对象不相同。