6

我正在使用np.fromfunction基于函数创建特定大小的数组。它看起来像这样:

import numpy as np
test = [[1,0],[0,2]]
f = lambda i, j: sum(test[i])
matrix = np.fromfunction(f, (len(test), len(test)), dtype=int)

但是,我收到以下错误:

TypeError: only integer arrays with one element can be converted to an index
4

1 回答 1

15

该函数需要处理 numpy 数组。让这个工作的一个简单方法是:

import numpy as np
test = [[1,0],[0,2]]
f = lambda i, j: sum(test[i])
matrix = np.fromfunction(np.vectorize(f), (len(test), len(test)), dtype=int)

np.vectorize返回 f 的矢量化版本,它将正确处理数组。

于 2013-05-28T20:03:03.927 回答