簡體   English   中英

關於將 numpy arrays 列表轉換為 object 數組的問題

[英]Question about turning a list of numpy arrays into an object array

我有一個關於將 numpy arrays 列表轉換為 object 數組的問題。

import numpy as np

testing_1=[np.array([1]),np.array([2]),np.array([3]),np.array([4]),np.array([np.nan])]
testing_1_array=np.asarray(testing_1, dtype=object)

testing_2=[np.array([1]),np.array([2,3]),np.array([4]),np.array([np.nan])]
testing_2_array=np.asarray(testing_2, dtype=object)

這導致了兩種截然不同的結果:

testing_1_array
Out[12]: 
array([[1],
       [2],
       [3],
       [4],
       [nan]], dtype=object)

testing_2_array
Out[13]: array([array([1]), array([2, 3]), array([4]), array([nan])], dtype=object)

我認為不同之處在於 testing_2_array 並非所有 arrays 的大小都相同。 有什么方法可以強制 numpy 到 output testing_1_array 以與 testing_2_output 相同的方式,這樣我就不必額外檢查初始列表中的所有 arraysZ 是否具有相同的大小?

np.array在可能的情況下嘗試創建多維數字 dtype 數組。 創建一個參差不齊的 object dtype 數組是一個后備選項。 對於一些形狀的組合,即使這樣也會引發錯誤。 指定 object dtype 不會改變基本行為。

創建一個“空”數組並填充它是最常用的選項。

In [272]: arr = np.empty(5,object)      # filled with None
In [273]: arr[:] = [np.array([1]),np.array([2]),np.array([3]),np.array([4]),np.a
     ...: rray([np.nan])]
In [274]: arr
Out[274]: 
array([array([1]), array([2]), array([3]), array([4]), array([nan])],
      dtype=object)

它也適用於參差不齊的形狀:

In [276]: arr = np.empty(4,object)
In [277]: arr[:] = [np.array([1]),np.array([2,3]),np.array([4]),np.array([np.nan
     ...: ])]
In [278]: arr
Out[278]: array([array([1]), array([2, 3]), array([4]), array([nan])], dtype=object)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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