我试图使用ufunc将一个N * 1 numpy数组整数有效地映射到N * 3 numpy浮点数组。使用ufunc映射numpy数组
我有什么至今:
map = {1: (0, 0, 0), 2: (0.5, 0.5, 0.5), 3: (1, 1, 1)}
ufunc = numpy.frompyfunc(lambda x: numpy.array(map[x], numpy.float32), 1, 1)
input = numpy.array([1, 2, 3], numpy.int32)
ufunc(input)
给出了一个3×3阵列D型对象。我想这个数组,但与D型float32。
'map'和'input'是Python内置函数。最好不要为这些名称分配新的值,因为它使得很难访问Python内置函数。 – unutbu
'frompyfunc'的文档说“返回的ufunc总是返回PyObject数组”。无论这个原因是什么,有一个相当简单的解决方法:提交一个适当的输入类型的输出矩阵作为“out”参数。 – Alexey