我有一个元组列表,idx = [ (1,4,), (2,3,), (0,), (0,3,4,) ]
;
我想将与上面列表对应的索引分配给1.
第一个元组(1,4,)
包含与第一行对应的列索引,第二个元组(2,3,)
包含与第二行对应的列索引等。如果A = zeoros((8,5)
则{{1}在第一列和第四列应该有1。
A[0,:]
在第二和第三列应该有1。 A[1,:]
应该有1个
第0列等
A[2,:]
根据元组列表分配后,我们得到
A = np.zeros((8,5))
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])
idx = [ (1,4,), (2,3,), (0,), (0,3,4,) ];
怎么做?
答案 0 :(得分:0)
你可以试试这个。
A = np.zeros((8,5))
idx = [ (1,4,), (2,3,), (0,), (0,3,4,) ]
idx_explicit = np.array(
[[(i,j) for j in idx[i]] for i in range(len(idx))]).sum()
# [(0, 1), (0, 4), (1, 2), (1, 3), (2, 0), (3, 0), (3, 3), (3, 4)]
A[tuple(np.transpose(idx_explicit))] = 1
有关详细信息,请参阅Integer array indexing
。
答案 1 :(得分:0)
您可以像这样使用scipy.sparse.coo_matrix
:
var user = await _userManager.FindByIdAsync(applicationUser.Id);
user.ChargeID = applicationUser.ChargeID;
user.CenterID = applicationUser.CenterID;
user.Name = applicationUser.Name;
var result = await _userManager.UpdateAsync(user);