....其中“意外”表示_I_没想到。 这可能只是一个文档修复程序,或者也许是因为我没有意识到np.ma
工作方式而受到责骂,但我认为这种行为不适当:
In [100]: x = np.ma.ones(5)
In [101]: x.mask = [False,False,True,False,False]
In [102]: np.copy(x)
Out[102]: array([ 1., 1., 1., 1., 1.])
In [103]: np.ma.copy(x)
Out[103]:
masked_array(data = [1.0 1.0 -- 1.0 1.0],
mask = [False False True False False],
fill_value = 1e+20)
In [104]: np.__version__
Out[104]: '1.8.0.dev-074a40c'
我至少希望收到警告,但希望按偏好顺序查看:
np.copy(x)
返回掩码数组(因为x是掩码数组)np.copy(x)
警告它正在取消屏蔽数组,然后返回与上面相同的数组np.copy(x)
引发异常np.copy(x)
返回[1,1,nan,1,1]
(这可能不理想)仍在1.9-devel中打开
但是,如果不使用特殊的无框遮罩阵列,则不确定如何解决此问题。
将np.copy的逻辑更改subok=True
在数组调用中包含
从:
return array(a, order=order, copy=True)
至:
return array(a, order=order, subok=True, copy=True)
如果是这样,subok应该是np.copy
的参数,默认值是True还是False? True将返回第一个首选结果,False将保留当前行为,但允许预期的行为但添加一个参数。
当我们已经有两个完全可行的解决方案时,我不赞成在np.copy
中添加subok
参数:
.copy()
方法np.array(a, subok=True)
(默认复制)我实际上会提出相反的意见,因为我认为大多数“副本”都会给人一种印象,那就是实际上可以得到一份副本,因此是同一类型。 我还认为这是一个小小的但有用的贡献,它使整个numpy能够更一致地处理子类(就像我之前使用np.broadcast_arrays
所做的那样,那里没有好的替代品)。 但是,鉴于需要保持向后兼容,我确实认为我们坚持使用subok=False
的默认值。
无论如何, @jjhelmus ,为什么不做快速公关来看看别人的想法呢?
@shoyer :np.copy应该应该放在您需要的功能列表中
不过,某种形式的Duck数组支持-对于鸭子数组,我认为np.copy
和np.array可能应该做不同的事情。 也许应该打电话
arr.copy?
在2015年10月15日星期四上午7:00,Marten van Kerkwijk <
[email protected]>写道:
我实际上会提出相反的意见,因为我认为大多数“复制”都可以
给人的印象是,实际上是一份副本,
因此属于同一类型。 我也认为这是很小但有用的贡献
使整个numpy更一致地能够处理子类
(就像我之前对np.broadcast_arrays所做的一样,没有很好的替代品
可用)。 但是,鉴于需要保持向后兼容,我
确实认为我们被默认为subok = False。无论如何, @jjhelmus https://github.com/jjhelmus ,为什么不做快速公关
看看别人的想法吗?-
直接回复此电子邮件或在GitHub上查看
https://github.com/numpy/numpy/issues/3474#issuecomment -148395201。
纳撒尼尔·史密斯(Nathaniel J.Smith)-http: //vorpus.org
是的,如果要使np.copy尝试在duck数组上调用copy方法,我将为+1。
仍然没有理由不支持subok
。 当然,只要存在__copy__
,就可以调用它。
创建PR#6509,它向功能添加一个subok参数,默认值为False 。 我猜这将打开有关该主题的一些讨论。 不知道这是否通常发生在PR,问题或邮件列表上。
讨论应该在邮件列表中。
2015年10月18日下午7:37,“ Jonathan J. Helmus”通知@ github.com
写道:
创建了PR#6509 https://github.com/numpy/numpy/pull/6509 ,其中添加了一个
函数的_subok_参数,默认值为_False_。 我是
猜测这将打开有关该主题的一些讨论。 不确定这是否
通常发生在PR,问题或邮件列表上。-
直接回复此电子邮件或在GitHub上查看
https://github.com/numpy/numpy/issues/3474#issuecomment -149080511。
明天我将向该主题的列表发送电子邮件。