0
基於一個值的值,讓我們說我有此數組:如何改變整個數組在Python
import numpy as np
np.array([[0,2,7],[-3,4,0],[12,10,12]])
我想,如果在一個或多個值來改變一個列的值列小於零。代碼應該是一般的,而不僅僅是這個數組 如何將中間向量中的所有值設置爲-3?
基於一個值的值,讓我們說我有此數組:如何改變整個數組在Python
import numpy as np
np.array([[0,2,7],[-3,4,0],[12,10,12]])
我想,如果在一個或多個值來改變一個列的值列小於零。代碼應該是一般的,而不僅僅是這個數組 如何將中間向量中的所有值設置爲-3?
您可以使用a mask來過濾某些值爲負數的列。然後可以使用相同的掩碼選擇替換值:在下面的示例中,至少有一個項目爲負數的列將被替換爲值等於該最小值的列。
>>> a = np.array([[0,2,7],[-3,4,0],[12,10,12], [0, -1, 3]]).T
>>> a
array([[ 0, -3, 12, 0],
[ 2, 4, 10, -1],
[ 7, 0, 12, 3]])
>>> mask = np.any(a < 0, axis=0)
>>> a[:,mask] = np.min(a[:,mask], axis=0)
>>> a
array([[ 0, -3, 12, -1],
[ 2, -3, 10, -1],
[ 7, -3, 12, -1]])