我有一個數組中的值範圍內的numpy的:[0, 255] (ubyte)
並希望將其重新映射到新的範圍[0.0, 1.0](float)
numpy的擬合值
x = [0, 127, 255]
應該成爲
x = [0.0, 0.5, 1.0]
該職位Convert a number range to another range, maintaining ratio是非常一般的方式如何重新映射範圍,但不解釋如何在numpy中方便地進行。
我有一個數組中的值範圍內的numpy的:[0, 255] (ubyte)
並希望將其重新映射到新的範圍[0.0, 1.0](float)
numpy的擬合值
x = [0, 127, 255]
應該成爲
x = [0.0, 0.5, 1.0]
該職位Convert a number range to another range, maintaining ratio是非常一般的方式如何重新映射範圍,但不解釋如何在numpy中方便地進行。
division
'/'
操作陣列上:這適用於操作element-wise
,這樣你就可以'divide'
的array
通過255
將map
值的你,就像這樣:
import numpy as np
x = np.array([0,127,255], dtype="uint8")
x = x/255
其給出:
array([0, 0.49803922, 1])
它不會給你的結果[0,0.5,1]
,因爲127
不是255
的一半!
這段代碼也是錯誤的!有趣的是,似乎有一個部門似乎很難。除了'np'沒有被定義,你將會遇到轉換問題,因爲NumPy會認爲'x'是一個'int'數組,然後你不應該使用'/ ='運算符,而是分成'x = x/255' ,這將強制正確強制自動類型強制。 – norok2
@ norok2對不起!我總是在我的計算機上運行代碼,然後在SO上輸入代碼,我有'import numpy as np'和'np.array([...],dtype =「uint8」)這兩行,我認爲這樣可以解決這兩個問題。你遇到的問題。讓我知道你是否發現了其他問題,因爲我也是'numpy'的新手。謝謝 –
'dtype'的顯式調用不會解決鑄造問題,將會用'x = x/255'替換'x/= 255' – norok2
可能出現[將數字範圍轉換爲另一個範圍,保持比例](https://stackoverflow.com/questions/929103/convert-a-number-range-to-another-range-maintaining-ratio) – blacksite
只是'x/255.0' – jdehesa
哇,這很容易@jdehesa!儘管我沒有在其他帖子中看到這個答案。不要認爲這是對numpy的重複。 – user1767754