的numpy.fromfunction使得與參數作爲陣列的功能的單個調用,如描述在例如this answer。所以要使用numpy.from函數,需要該函數接受數組參數並返回一個數組。如何根據爲每個元素調用的函數製作numpy數組?
如何使numpy的陣列基於稱爲對於每個元件,其中函數返回標爲元件的功能,如例如使用max
函數像下面?
z = numpy.fromfunction(max, (2, 2), dtype=int)
這將然後返回:
[[0 1]
[1 1]]
的numpy.fromfunction使得與參數作爲陣列的功能的單個調用,如描述在例如this answer。所以要使用numpy.from函數,需要該函數接受數組參數並返回一個數組。如何根據爲每個元素調用的函數製作numpy數組?
如何使numpy的陣列基於稱爲對於每個元件,其中函數返回標爲元件的功能,如例如使用max
函數像下面?
z = numpy.fromfunction(max, (2, 2), dtype=int)
這將然後返回:
[[0 1]
[1 1]]
您可以使用numpy.vectorize
爲
vmax = numpy.vectorize(max)
z = numpy.fromfunction(vmax, (2, 2), dtype=int)
請雖然注意從文檔這樣一句話:
矢量化功能主要由fo提供方便,而不是表現。實現本質上是一個for循環。
就其性質而言numpy.vectorize
會很慢。在這個例子中numpy.maximum
將快得多:
z = numpy.fromfunction(numpy.maximum, (2, 2), dtype=int)
對於一般的解決辦法是罰款。寫這樣的,當我的工程業績會更高,如果代碼,然後執行太慢我稍後會優化:-) – EquipDev
我明白了。我只是爭辯說,你應該嘗試儘可能使用'numpy'功能。 –
不知道我得到您的問題:z將是標量,爲什麼它應該是一個數組? – Roelant
你爲什麼不只是使用'np.max'或者如果你想使用其他功能,那是什麼是什麼呢?在numpy中沒有等價物嗎? – Kasramvd
@ Kasramvd:Max只是一個示例函數;這個問題仍然被認爲是一個通用解決方案。 – EquipDev