玩蛇网提供最新Python编程技术信息以及Python资源下载!

python numpy fromfunction()调用我的理解对不对

书上看到了一段代码,讲numpy的fromfunction的使用

import numpy as np
def func(i):
    print 'call!'
    return i%4

np.fromfunction(func, (10,))
#结果是 array([1., 2., 3., 4., 1., 2., 3., 4., 1., 2.])

但是很奇葩的是,func这个函数只是传递单个int类型,返回一个值。为什么用了fromfunction会返回这么一个数组?

猜测一下应该是numpu调用了10次的func,然后每次把不同的参数传递进去,最后把结果拼成一个数组。

但是最奇葩的是,函数中的print 'call!'只执行过一次。。。也就是说不是同一个函数调用了10次??那这个fromfunction的调用形式到底是啥。。。

因为Python中没有指明类型。

def func(i):
    print 'call!'
    return i%4

你看到i知道代表整型,但是Python不知道。i一样可以是数组:

from numpy import * 
array([1, 2, 3, 4]) % 4 # 返回 array([1, 2, 3, 0])

只调用一次,看源代码最清楚:

def fromfunction(function, shape, **kwargs):
    dtype = kwargs.pop('dtype', float)
    args = indices(shape, dtype=dtype)
    return function(*args,**kwargs)

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19878.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月24日 - 19时21分47秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules