![](/img/trans.png)
[英]Is it possible to have both numpy array values and object atribute pointing to the same position in memory?
[英]Is it possible to create a numpy array from data pointing to same object in memory
假設我們有兩個類型為 numpy.float32 的標量:
a
>>>1.0
type(a)
>>><class 'numpy.float32'>
b
>>>2.0
type(b)
>>><class 'numpy.float32'>
我正在嘗試從列表([a,b,a,a,b,b,b,a,b,b,a,a,a,b,b,a,a])創建一個 numpy 數組。
我的問題是,我們可以讓這個數組將其標量指向 memory 中的相同 object 嗎? 而不是按其形狀的步幅復制它們?
我有一個很長的數組,例如 shape(1,30000),它由一些按不同順序排列的標量(大約 30 個)組成,例如 1,2,3,2,1,3,2,1,2,1,3 ,3,2,2,3,1,2,1,1,3...
創建這個數組需要大量的 memory,但由於它們實際上是重復的相同標量,我認為可能有一種方法可以在 memory 中加載它們一次並將數組成員指向它們。
如果您的數組大小小於 32767(這是 numpy 中的最大 int16,請嘗試: np.iinfo(np.int16).max
)將您的值的索引數組存儲為 int16值數組本身,需要從另一個列表中調用值。 盡管從某種意義上說這幾乎是無用的,因為如果不創建值數組就無法利用數組計算:
values = np.array([1.0, 2.0, 3.0, 4.0], dtype=np.float32)
indices = np.array([1,2,3,2,1,3,2,1,2,1,3,3,2,2,3,1,2,1,1,3], dtype=np.int16)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.