簡體   English   中英

是否可以從指向 memory 中相同 object 的數據創建 numpy 數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM