首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >numpy numpy函数的使用

numpy numpy函数的使用
EN

Stack Overflow用户
提问于 2016-11-18 08:25:05
回答 2查看 2.6K关注 0票数 4

我试图使用this函数创建一个具有mu=3和sig=2的高斯值的5x5矩阵,这是我的尝试:

代码语言:javascript
复制
from random import gauss
import numpy as np
np.fromfunction(lambda i,j: gauss(3,2), (5, 5))

结果是: 5.365244570434782

正如我从文档中了解到的,这应该是可行的,但是我得到的是一个标量,而不是5x5矩阵.为什么?以及如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-18 08:31:03

numpy.fromfunction文档具有极大的误导性。fromfunction实际上只对传递给它的函数进行了一次调用,而不是重复调用函数并根据结果构建数组。在这一调用中,它将许多索引数组传递给函数,而不是单个索引。

去掉docstring后,实现如下:

代码语言:javascript
复制
def fromfunction(function, shape, **kwargs):
    dtype = kwargs.pop('dtype', float)
    args = indices(shape, dtype=dtype)
    return function(*args,**kwargs)

这意味着除非您的函数广播,否则numpy.fromfunction不会像文档所说的那样执行任何操作。

票数 13
EN

Stack Overflow用户

发布于 2020-04-24 07:41:54

我知道这是一篇老文章,但是对于那些偶然发现的人来说,它不起作用的原因是,lambda中的表达式没有使用i, j变量

你需要什么?你能这样做吗?

代码语言:javascript
复制
np.zeros((5, 5)) + gauss(3, 2)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40672367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档