簡體   English   中英

如何在Python中獲取多維Numpy數組元素的類型

[英]How to get type of multidimensional Numpy array elements in Python

我怎樣才能獲得多維數組的類型?

我對待數組,但考慮數據類型: stringfloatBoolean ,我必須調整代碼,所以我必須得到類型,無論維度可以是一個二維或更多。

數據可以是真實的1d,字符串的3D ...

我想恢復數組的類型,它是真的嗎,它是一個字符串是一個布爾...沒有做數組[0]或數組[0] [0] [0] [0]因為維度可以是各種各樣的。 或者一種獲取數組的第一個元素的方法,無論尺寸如何。

它適用於np.isreal有點修改,但我沒有找到像isastring或isaboolean等效...

使用dtype屬性:

>>> import numpy
>>> ar = numpy.array(range(10))
>>> ar.dtype
dtype('int32')

說明

Python列表就像數組:

>>> [[1, 2], [3, 4]]
[[1, 2], [3, 4]]

但是對於分析和科學計算,我們通常使用numpy包的數組進行高性能計算:

>>> import numpy as np
>>> np.array([[1, 2], [3, 4]])
array([[1, 2],
       [3, 4]])

如果你問的是檢查數組中數據的類型,我們可以通過使用數組中感興趣項目的索引來做到這一點(這里我會更深入地進行直到我到達最深的元素):

>>> ar = np.array([[1, 2], [3, 4]])
>>> type(ar)
<type 'numpy.ndarray'>
>>> type(ar[0])
<type 'numpy.ndarray'>
>>> type(ar[0][0])
<type 'numpy.int32'>

我們還可以通過訪問dtype屬性直接檢查數據類型

>>> ar.dtype
dtype('int32')

例如,如果數組是一個字符串,我們將了解最長字符串的長度:

>>> ar = numpy.array([['apple', 'b'],['c', 'd']])
>>> ar
array([['apple', 'b'],
       ['c', 'd']], 
      dtype='|S5')
>>> ar = numpy.array([['apple', 'banana'],['c', 'd']])
>>> ar
array([['apple', 'banana'],
       ['c', 'd']], 
      dtype='|S6')
>>> ar.dtype
dtype('S6')

我傾向於不對我的導入進行別名,所以我有這里看到的一致性(我通常會import numpy )。

>>> ar.dtype.type
<type 'numpy.string_'>
>>> ar.dtype.type == numpy.string_
True

但是import numpy as np (即別名)是很常見的:

>>> import numpy as np
>>> ar.dtype.type == np.string_
True
fruits = [['banana'], [1],  [11.12]]

for first_array in range(len(fruits)):
    for second_array in range(len(fruits[first_array])):
        print('Type :', type(fruits[first_array][second_array]), 'data:', fruits[first_array][second_array])

這顯示了每個值的數據類型。

暫無
暫無

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

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