如何根据为每个元素调用的函数制作numpy数组?

时间:2017-04-10 11:27:01

标签: python numpy

numpy.fromfunction使用参数作为数组对函数进行单次调用,如例如this answer。因此,要使用numpy.fromfunction,需要该函数接受数组参数并返回一个数组。

如何根据为每个元素调用的函数制作numpy数组,其中函数返回元素的标量,例如使用如下所示的max函数?

z = numpy.fromfunction(max, (2, 2), dtype=int)

然后会返回:

[[0 1]
 [1 1]]

1 个答案:

答案 0 :(得分:2)

您可以{/ 3}}使用

PDF

请注意文档中的这句话:

  

提供矢量化功能主要是为了方便,而不是为了提高性能。实现基本上是for循环。

本质上vmax = numpy.vectorize(max) z = numpy.fromfunction(vmax, (2, 2), dtype=int) 会很慢。在此示例中,numpy.vectorize会更快:

numpy.maximum