假设我有一个__array_interface__
字典,我想从字典本身创建这个数据的numpy视图。例如:
buff = {'shape': (3, 3), 'data': (140546686381536, False), 'typestr': '<f8'}
view = np.array(buff, copy=False)
但是,这在np.array
将缓冲区或数组接口作为属性进行搜索时不起作用。简单的解决方法如下:
^{pr2}$
这似乎有点迂回。我是不是错过了一个直截了当的方法?在
Tags:
另一种方法是:
用法:
^{pr2}$更正-使用正确的“data”值,
holder
在np.array
中工作:np.array
肯定行不通,因为它需要iterable,某些东西像列表列表,并解析各个值。在有一个低级构造函数
np.ndarray
,它接受一个缓冲区参数。和一个np.frombuffer
。在但我的印象是,
x.__array_interface__['data'][0]
是数据缓冲区位置的整数表示,而不是直接指向缓冲区的指针。我只是用它来验证一个视图是否共享同一个数据缓冲区,而不是从中构造任何东西。在np.lib.stride_tricks.as_strided
使用__array_interface__
作为默认的步幅和形状数据,但从数组而不是__array_interface__
字典中获取数据。在==========
具有
.data
属性的ndarray
示例:这两个数组都是视图。在
好的,对于您的
^{pr2}$holder
类,我可以做同样的事情,使用这个res.data
作为数据缓冲区。您的类创建一个object exposing the array interface
。在相关问题 更多 >
编程相关推荐