检查Numpy数组(和Pandas DataFrame)中的所有元素并有选择地更改

时间:2018-04-24 05:44:20

标签: python pandas

假设我们在行和列中都有一个numpy 2d数组(或Pandas DataFrame),其长度可变。

在numpy ndarray或pandas DataFrame中,是否有一种快速方法可以检查所有元素并剪切到预先指定的最大值(如果任何元素大于预先指定的最大值),哪个更简单?

1 个答案:

答案 0 :(得分:2)

pandas - 使用DataFrame.clip_upper

np.random.seed(2018)
df = pd.DataFrame(np.random.randint(10, size=(5,5)))

print (df)
   0  1  2  3  4
0  6  2  9  5  4
1  6  9  9  7  9
2  6  6  1  0  6
3  5  6  7  0  7
4  8  7  9  4  8

print (df.clip_upper(5))
   0  1  2  3  4
0  5  2  5  5  4
1  5  5  5  5  5
2  5  5  1  0  5
3  5  5  5  0  5
4  5  5  5  4  5

Numpy - 使用numpy.clip

np.random.seed(2018)
arr = np.random.randint(10, size=(5,5))
print (arr)
[[6 2 9 5 4]
 [6 9 9 7 9]
 [6 6 1 0 6]
 [5 6 7 0 7]
 [8 7 9 4 8]]

print (np.clip(arr, arr.min(), 5))
[[5 2 5 5 4]
 [5 5 5 5 5]
 [5 5 1 0 5]
 [5 5 5 0 5]
 [5 5 5 4 5]]