我有一个像这样的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]]
Run Code Online (Sandbox Code Playgroud)
我想将[x,x](即列号和行号)相同的值替换为np.nan。我尝试这样做:
for i in range(8):
data[i][i] = np.nan
Run Code Online (Sandbox Code Playgroud)
但它给出了一个错误
非常感谢
numpy.fill_diagonal在将数组键入以下内容后使用float:
import numpy as np
arr = np.random.randint(0, 10, (10,10))
arr = arr.astype(float)
np.fill_diagonal(arr, np.nan)
Run Code Online (Sandbox Code Playgroud)
输出:
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]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |