Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有一个numpy函数模仿a[[i,j],…][…,[a,b,c]],但不是只读的?_Python_Numpy - Fatal编程技术网

Python 是否有一个numpy函数模仿a[[i,j],…][…,[a,b,c]],但不是只读的?

Python 是否有一个numpy函数模仿a[[i,j],…][…,[a,b,c]],但不是只读的?,python,numpy,Python,Numpy,我试图用numpy和一些稀疏矩阵做一些矩阵计算。为此,我想忽略矩阵中的零,只访问一些值,但我还需要覆盖它们 import numpy as np a=np.random.rand(5,5) #does not change a: a[[1,2],...][...,[1,2]]=np.array([[0,0],[0,0]]) #just changes (1,1) and (2,2) a[[1,2],[1,2]]=np.array([0,0]) 我想用零覆盖[1,1]、[1,2]、[2,1]、

我试图用numpy和一些稀疏矩阵做一些矩阵计算。为此,我想忽略矩阵中的零,只访问一些值,但我还需要覆盖它们

import numpy as np

a=np.random.rand(5,5)
#does not change a:
a[[1,2],...][...,[1,2]]=np.array([[0,0],[0,0]])
#just changes (1,1) and (2,2)
a[[1,2],[1,2]]=np.array([0,0])

我想用零覆盖[1,1]、[1,2]、[2,1]、[2,2]。

对于任何给定的索引列表,一种通用的方法是在要指定0的索引对上循环

import numpy as np

a=np.random.rand(5,5)
indices = [[1,1],[1,2],[2,1],[2,2] ]

for i in indices:
    a[tuple(i)] = 0

print (a)

array([[0.16014178, 0.68771817, 0.97822325, 0.30983165, 0.60145224],
   [0.10440995, 0.        , 0.        , 0.09527387, 0.38472278],
   [0.93199524, 0.        , 0.        , 0.11230965, 0.81220929],
   [0.91941358, 0.96513491, 0.07891327, 0.43564498, 0.43580541],
   [0.94158242, 0.78145344, 0.73241028, 0.35964791, 0.62645245]])

我想你需要这样的东西:

import numpy as np

a = np.arange(25).reshape((5, 5))
i, j = np.ix_([1, 2], [1, 2])
a[i, j] = np.zeros((2, 2))
print(a)
# [[ 0  1  2  3  4]
#  [ 5  0  0  8  9]
#  [10  0  0 13 14]
#  [15 16 17 18 19]
#  [20 21 22 23 24]]

到底是什么问题?
a[[1,2],[1,2]]=np.array([0,0])
有什么问题?它只是覆盖了(1,1)和(2,2),但我想覆盖(1,1)、(1,2)、(2,1)和(2,2)<这回答了我的问题。