我試圖使用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