假设我有一个数组test:SF.AcuraUsage_20150311
test:SF.AcuraUsage_20150312
test:SF.AcuraUsage_20150313
test:SF.AcuraUsage_20150314
test:SF.AcuraUsage_20150315
test:SF.AcuraUsage_20150316
test:SF.AcuraUsage_20150317
test:SF.ClientUsage_20150318
test:SF.ClientUsage_20150319
test:SF.ClientUsage_20150320
test:SF.ClientUsage_20150321
和一个数组x
的掩码。我想使用mask
使用np.copyto
写入x
。有没有办法可以做到这一点?我只是尝试使用mask
不起作用,因为屏蔽的copyto
不可写。
x
答案 0 :(得分:2)
评论指数分配工作
In [16]: x[mask]=[30,40]
In [17]: x
Out[17]: array([ 1, 2, 30, 40])
使用x[mask]
时必须小心。这是'高级索引',因此它会创建副本,而不是x
的视图。直接赋值不是问题,但copyto x[mask]
作为参数传递给函数。
In [19]: y=x[mask]
In [21]: np.copyto(y,[2,3])
更改y
,但不更改x
。
检查其文档我看到copyto
确实接受了where
参数,该参数可以用作
In [24]: np.copyto(x,[0,0,31,41],where=mask)
In [25]: x
Out[25]: array([ 1, 2, 31, 41])