gpt4 book ai didi

python - 将 numpy 数组的特定索引中的数字替换为 NaN

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:38 26 4
gpt4 key购买 nike

我有一个像这样的 numpy 数组:

[[1399   17    4    3    0    0    0    0]
[ 11 374 2 3 1 4 0 1]
[ 7 0 187 4 0 0 1 1]
[ 2 3 4 308 0 0 0 3]
[ 2 0 0 0 280 3 0 1]
[ 0 2 0 0 2 81 0 3]
[ 1 0 2 0 2 0 154 4]
[ 0 0 1 2 1 1 8 552]]

我想将 [x,x] 即列号和行号相同的值替换为 np.nan。我试过这样做:

for i in range(8):
data[i][i] = np.nan

但是报错

非常感谢

最佳答案

在将数组输入 float 后使用 numpy.fill_diagonal:

import numpy as np

arr = np.random.randint(0, 10, (10,10))
arr = arr.astype(float)
np.fill_diagonal(arr, np.nan)

输出:

array([[nan,  2.,  6.,  6.,  1.,  2.,  7.,  2.,  7.,  0.],
[ 3., nan, 3., 7., 3., 5., 2., 9., 1., 3.],
[ 4., 2., nan, 2., 6., 0., 4., 3., 5., 8.],
[ 8., 8., 6., nan, 7., 8., 4., 1., 0., 8.],
[ 5., 2., 1., 5., nan, 6., 4., 7., 8., 7.],
[ 9., 5., 7., 1., 6., nan, 7., 9., 2., 8.],
[ 5., 1., 5., 6., 1., 0., nan, 5., 1., 6.],
[ 5., 9., 7., 4., 4., 4., 0., nan, 3., 5.],
[ 8., 2., 2., 0., 4., 5., 2., 2., nan, 3.],
[ 7., 4., 9., 4., 5., 4., 2., 4., 0., nan]])

关于python - 将 numpy 数组的特定索引中的数字替换为 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56252537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com