写入numpy中的蒙版数组

时间:2016-06-10 18:03:40

标签: python numpy

假设我有一个数组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

1 个答案:

答案 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])