Ofe*_*Ron 4 python lambda numpy
我试图使用fromfunction创建一个高斯值为mu = 3和sig = 2的5x5矩阵,这是我的尝试:
from random import gauss
import numpy as np
np.fromfunction(lambda i,j: gauss(3,2), (5, 5))
Run Code Online (Sandbox Code Playgroud)
结果如下:5.365244570434782
正如我从文档中理解的那应该有效,但我得到的是标量而不是5x5矩阵...为什么?以及如何解决这个问题?
use*_*ica 12
这些numpy.fromfunction文档极具误导性.而不是重复调用你的函数并从结果中构建一个数组,fromfunction实际上只调用你传递它的函数.在那一次调用中,它将许多索引数组传递给您的函数,而不是单个索引.
剥离文档字符串,实现如下:
def fromfunction(function, shape, **kwargs):
dtype = kwargs.pop('dtype', float)
args = indices(shape, dtype=dtype)
return function(*args,**kwargs)
Run Code Online (Sandbox Code Playgroud)
这意味着除非您的功能广播,否则numpy.fromfunction不会像文档所说的那样做任何事情.
| 归档时间: |
|
| 查看次数: |
1412 次 |
| 最近记录: |