簡體   English   中英

如何將空 numpy 數組返回為 np.ndarray([[[]]])

[英]How to return empty numpy array as np.ndarray([[[]]])

我有一個程序可以檢索圖像並將 RGB 圖像返回為 3D np.ndarray 當圖像不可用時,我想返回np.ndarray([[[]]])

我們能做到嗎?

使用numpy.empty

它返回給定形狀和類型的新數組,而不初始化條目。

import numpy as np
empty_array = np.empty((1, 1, 1))
empty_array
array([[[5.e-324]]])

或者

import numpy as np
empty_array = np.empty((1, 1, 0))
empty_array
array([], shape=(1, 1, 0), dtype=float64)

這基本上是

np.array([[[]]])

文檔以獲得更多幫助

只需返回np.empty((10,10,10),object)因為x=np.empty((10,10,10))返回數組,其中隨機值已存儲在 memory 緩沖區中。 x=np.empty((10,10,10),object)將返回none值的數組。

這里 (10,10,10) 維度只是一個例子。 使用對您有利的尺寸。

制作這樣一個數組很容易:

In [128]: arr = np.array([[[]]])                                                                     
In [129]: arr                                                                                        
Out[129]: array([], shape=(1, 1, 0), dtype=float64)

您也可以使用np.zeros((1,1,0)) (或empty ); 但這並不比 [128] 簡單。

但是您將如何使用或測試它呢? 我想你可以檢查:

In [130]: arr.nbytes                                                                                 
Out[130]: 0

我相信其中一個圖像包( cv2 ?)如果無法加載圖像,則返回None 在 python 中測試None簡單、可靠且廣泛使用。

In [131]: arr = None                                                                                 
In [132]: arr is None                                                                                
Out[132]: True

使用 0 尺寸的“圖像”可能會發送更多信息,但仍然是完整的 3 個顏色通道np.zeros((0,0,3), np.int8)

暫無
暫無

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

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