numpy中的數據類型對象有哪些

2021-01-07 07blog

Numpy數據類型

numpy是一個python擴展包,它可以為我們提供更精確的科學技術,更強大的數學能力。為此,numpy定義了比python更豐富的數據類型來達成目的。

數據類型

以上就是一系列Numpy中提供的數據類型。需要理解的是,Numpy中的數據類型,和python本身的數據類型是不同的。Numpy中的數據類型,實質是數據類型對象dtype的實例。

Numpy中的Ndarray對象可以幫助我們構建N維數組對象。我們知道,對於數組來說,最大特點是,對於給定長度的數組,其在內存中所佔用的空間大小是預先分配的,並且,每個元素所佔用的空間大小是相當的。

那麼,Ndarray怎麼計算每個元素所佔用的空間大小呢?就是根據dtype。換句話說,dtype定義中,應該包含類型的名字,並且,能夠明確該類型實例佔用的內存空間大小。

另外,dtype中還表明了數據的字節順序。什麼是字節順序呢?我們知道,對於機器來說,正常的人類語言是無法直接被識別或存儲的。需要轉換成二進位01代碼。這種二進位01代碼稱為機器語言,也叫字節碼。對於一個特定的正常語言,轉換成一系列01代碼後,可以正向存放,也可以逆向存放。低位放在最前,稱之為小端法,高位放在最前,則稱之為大端法。

在numpy,core包的multiarray_umath.py模塊中,可以找到dtype類的定義。有興趣的同學可以嘗試閱讀一下其源碼。讀源碼其實是一種有效的學習編程的方式。

dtype類定義

Numpy數據類型的簡單案例

案例一:numpy.bool_和bool有區別

numpy的bool_和bool

上面的demo不會報錯,這容易讓人誤以為,bool可能是numpy中bool_的簡寫,事實上,二者是兩個不同的對象。bool_是由numpy定義的,而bool則是由python標準庫定義的。

額外補充一點關於python數據類型的內容。我們知道,python中,有一系列基本數據類型,如數字,字符串,列表,元組,字典,集合等。而又與之對應,創建了一系列對象,幫助使用,如int,float,complex,str,list,tuple,dict,set等。bool也是一個,只不過,查看源碼你會發現,int,float等,都是以object為父類的,而bool,則是以int為父類的。這正是python一切皆對象的表現之一。

案例二:使用字符串碼

字符串碼可以幫助建立一個dtype對象實例,還可以同時指定其字節碼順序。字符串碼一般比原數據類型的標識符要短。

比如說,int類型的字符串碼為i,可以通過以下方式創建:

int類型的字符串碼

我們發現,通過字符串碼i,創建了一個int32,你也可以通過i3來創建int32,通過i1創建int8,通過i2創建int16,通過i4創建int64。規律就是i其實是int的首字母,後面的數字其實是字節的長度,8位是1個字節,16位是兩個字節,32位是三個字節……

大部分的情況下是可以通過這種規律來幫助記憶的。事實上,用多了,自然也就記住了。常用列表如下:

字符串碼

通過在字符串碼前加大於或小於號來指定字節排序,小於代表小端法,大於代表大端法,如下:

指定排序

其實在大部分場景下,我們不需要關注字節的排序,這時候,直接通過np的對象來創建就好,這樣也不用去記憶或查詢字符串碼了。

相關焦點

  • 第 81 天:NumPy Ndarray 對象及數據類型
    上一篇文章中我們詳細介紹了 NumPy 的功能及用途,本章節著重介紹 NumPy 一個神奇的對象 Ndarray 以及 NumPy 數據類型,包括兩者的用途,接下來就開啟神奇之旅吧。標準安裝的 Python 中用列表 (list) 保存一組值,它可以用來當作數組使用,不過由於列表的元素可以是任何對象,因此列表中所保存的是對象的指針。
  • Python數據分析之Numpy學習 2——NumPy 基礎 ndarray對象
    Python數據分析之Numpy學習 2 —— NumPy 基礎學習NumPy(Numerical Python)是高性能科學計算和數據分析的基礎包。NumPy的主要對象是同構數據多維容器(homogeneous multidimensional array)——ndarray,也就是說每一個ndarray都是一個相同類型元素組成的表格(二維)。在NumPy中維度(dimensions)叫做軸(axes),軸的個數叫做秩(rank)。軸這個概念必須牢記,否則放棄吧。首先軸是從0開始計的,0代表最高維,次高維是1,以此類推。
  • 數據分析-numpy庫快速了解
    NumPy是SciPy、Pandas等數據處理或科學計算庫的基礎2.numpy庫有什麼用numpy用途是很廣的,涉及到數字計算等都可以使用,它的優勢在於底層是C語言開發的數據非常快。 數組對象可以去掉元素間運算所需的循環,使一維向量更像單個數據 設置專門的數組對象,經過優化,可以提升這類應用的運算速度觀察:科學計算中,一個維度所有數據的類型往往相同 數組對象採用相同的數據類型,有助於節省運算和存儲空間具體可以看下面一個例子:(來源嵩天老師案例)3.numpy庫怎麼使用先安裝numpy
  • NumPy的數組對象
    NumPy的主要操作對象是同類型的多維數組,數組中的所有元素類型都是相同的,數組對象名是ndarray,別名是array。一、創建數組可以有多種方式創建NumPy數組:(1)使用NumPy的array函數從Python列表中創建數組,數組類型由列表中的數據類型確定;(2)使用NumPy的zeros函數創建數組元素全部為0的數組,默認情況下數組元素的類型為float64;(3)使用NumPy的ones函數創建數組元素全部為
  • Python數據分析之numpy數組全解析
    1 什麼是numpy2 numpy數組創建2.1 基本方法:np.array()2.2 通用方法:np.ones()、np.zeros()、np.eye()2.3 讀取外部數據3 numpy中數組的數據類型4 numpy中數組的形狀5 索引與切片5.1 按索引取值
  • 從numpy開啟Python數據科學之旅
    各位看官可自行去網上尋找一下這本Python數據分析入門書籍。 先簡單介紹了下小編學習Python主要方法和參考資料,很明顯今天的主題numpy是屬於第二個路徑的內容,下面就開始進入今天的正題。NumPy簡介    NumPy是Python中科學計算庫,其主要對象是包含同種元素的多維數組。在NumPy中數組的維度也叫做軸(axis),軸的個數叫做秩(rank)。
  • Python乾貨 | Python數據分析之numpy數組全解析
    1 什麼是numpy2 numpy數組創建2.1 基本方法:np.array()2.2 通用方法:np.ones()、np.zeros()、np.eye()2.3 讀取外部數據3 numpy中數組的數據類型4 numpy中數組的形狀5 索引與切片5.1 按索引取值
  • Python數據科學Numpy基礎20問
    1、什麼是numpy?一言以蔽之,numpy是python中基於數組對象的科學計算庫。提煉關鍵字,可以得出numpy以下三大特點:2、如何安裝numpy?因為numpy是一個python庫,所以使用python包管理工具pip或者conda都可以安裝。
  • 如何把小豬佩奇放到多維空間裡(深入理解numpy中的ndarray對象)
    在使用numpy對ndarray對象進行處理時,我們動輒就會碰到大於二維的數據。這時候,很多小朋友肯定會犯難,如何理解這些數據?怎麼才能在腦海裡把這些數據跟我們的現實生活聯繫起來進行理解呢?今天,我帶大家通過一個實例來深入理解一下這個數據結構。
  • 學員筆記||Python數據分析之:numpy入門(一)
    名詞解釋:ndarray是numpy的核心數據類型,即(n-dimensional array)多維數組,tensorflow中的tensor(張量),它本質上也多維數組,但這個名字很高大上。因此,理解多維數組對之後的機器學習會有很大幫助。導入import numpy as np
  • Python數據分析之NumPy數值計算
    N 維數組對象 ndarray,它是一系列同類型數據的集合,以 0 下標為開始進行集合中元素的索引。ndarray 對象是用於存放同類型元素的多維數組。ndarray 中的每個元素在內存中都有相同存儲大小的區域。ndarray 內部由以下內容組成:•一個指向數據(內存或內存映射文件中的一塊數據)的指針。•數據類型或 dtype,描述在數組中的固定大小值的格子。
  • 【數據分析】Numpy
    這是官方認證的導入方式,可能會有人說為什麼不用from numpy import *,是因為在numpy當中有一些方法與Python中自帶的一些方法,例如max、min等衝突,為了避免這些麻煩大家就約定俗成的都使用這種方法。
  • Python 數據分析:NumPy 基礎知識
    使用2.1 ndarrayndarray 即 n 維數數組類型,它是一個相同數據類型的集合,以 0 下標為開始進行集合中元素的索引。)常用屬性通過示例來看一下 ndarray 對象的常用屬性import numpy as nparr = np.array([1, 2, 3])# 元素類型print(arr.dtype
  • python數據分析專題 (9):numpy基礎
    NumPy(Numerical Python的簡稱)是高性能科學計算和數據分析的基礎包。NumPy最重要的一個特點就是其N維數組對象(即ndarray),該對象是一個快速而靈活的大數據集容器。新手可能不理解這句話的含義,這個需要慢慢去理解 。總之,知道numpy是python數據分析最重要的基礎包就可以了。
  • 數據分析入門 | numpy基礎:數組和矢量計算
    本文是一篇對《利用Python進行數據分析》的學習筆記,如有錯誤,歡迎評論指正。注意:因為這是本人的第二次學習,所以一些關於numpy的基礎知識會跳過,想要全面學習的小夥伴可以關注我的公眾號,私信文末的關鍵詞獲取pdf版《利用Python進行數據分析》、本文相關代碼以及我個人推薦的相關博客。
  • 使用Python玩轉數據分析(4):掌握NumPy數組及基礎運算
    數組內所包含元素的數據類型沒有限制,可以是任意類型的數據。在NumPy中,數組元素為布布爾值、實數或複數。NumPy數組也稱為數組對象,它提供了多個屬性和方法用於獲取數組的信息,對數組進行運算,數組中的所有元素類型都是相同的,數組對象名是ndarray,別名是array。
  • Python中NumPy簡介及使用舉例
    NumPy中定義的最重要的對象是稱為ndarray的N維數組類型。它描述相同類型的元素集合,可以使用基於零的索引訪問集合中元素。基本的ndarray是使用NumPy中的數組函數創建的: numpy.array。NumPy支持比Python更多種類的數值類型。NumPy數值是dtype(數據類型)對象的實例,每個對象具有唯一的特徵。
  • NumPy:創建和操作數值數據
    不同的數據類型可以更緊湊的在內存中存儲數據,但是大多數時候我們都只是操作浮點數據。注意,在上面的例子中,Numpy自動從輸入中識別了數據類型。練習:簡化假定有 sum ,你會期望看到哪些其他的函數?sum 和 cumsum 有什麼區別?實例: 數據統計populations.txt中的數據描述了過去20年加拿大北部野兔和猞猁的數量(以及胡蘿蔔)。
  • Python數據分析 - Numpy
    如今,np被Python其它科學計算包作為基礎包,已成為Python 數據分析的基礎,可以說,NP是SciPy、Pandas等數據處理或科學計算庫最基本的函數功能庫。因此,理解np的數據類型對python數據分析十分有幫助。下面,本文將介紹Np的常用操作和基本數據類型。NP提供了以下重點功能。
  • php數據類型有哪些?
    本篇將介紹php數據類型有哪些?有興趣的朋友可以了解一下!一、前言php是一門很受歡迎的程式語言,而且簡單易學,因此迎來了很多自學者,小編也是其中一個。每一門程式語言都有自己的數據類型,php也不例外,也有自己的數據類型。但是php和其它語言不一樣,它是一門弱語言,在聲明變量的時候不需要指定數據類型。