我不确定这里是否使用了正确的词汇,但是我有一个用例,可以将可写视图创建到numpy记录数组中。我看到numpy的行为方式存在差异,具体取决于我如何进行选择。以下代码段是一个最小的示例。
import numpy as np
a = np.asarray([(True, 1), (False, 2), (True, 3), (False, 4)], dtype=np.dtype([('b', 'b1'), ('i', 'i4')]))
mask = a['b']
a[mask]['i'] = 0
print((a[mask]['i'] == 0).all()) # this is false
a['i'][mask] = 0
print((a[mask]['i'] == 0).all()) # this is true
这是预期的行为还是错误?是否还有其他方法可以生成避免复制数据的子记录数组?