成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Numpy 中文用戶指南 3.1 數(shù)據(jù)類型

褰辯話 / 1748人閱讀

摘要:其他數(shù)據(jù)類型在中沒(méi)有對(duì)應(yīng)。因此,使用數(shù)組標(biāo)量確保了數(shù)組和標(biāo)量之間具有相同的行為,無(wú)論值在不在數(shù)組中。不提供比的精度更高的特別是位四精度數(shù)據(jù)類型的是不能用的。

原文:Data types

譯者:飛龍

?

另見

數(shù)據(jù)類型對(duì)象

數(shù)組類型和類型之間的轉(zhuǎn)換

NumPy支持的數(shù)值類型比Python更多。這一節(jié)會(huì)講述所有可用的類型,以及如何改變數(shù)組的數(shù)據(jù)類型。

數(shù)據(jù)類型 描述
bool_ 以字節(jié)存儲(chǔ)的布爾值(True 或 False)
int_ 默認(rèn)的整數(shù)類型(和 C 的 long 一樣,是 int64 或者 int32)
intc 和 C 的 int 相同(一般為 int64 或 int32)
intp 用于下標(biāo)的整數(shù)(和 C 的 ssize_t 相同,一般為int64 或者 int32)
int8 字節(jié)(-128 到 127)
int16 整數(shù)(-32768 到 32767)
int32 整數(shù)(-2147483648 到 2147483647)
int64 整數(shù)(-9223372036854775808 到 9223372036854775807)
uint8 無(wú)符號(hào)整數(shù)(0 到 255)
uint16 無(wú)符號(hào)整數(shù)(0 到 65535)
uint32 無(wú)符號(hào)整數(shù)(0 到 4294967295)
uint64 無(wú)符號(hào)整數(shù)(0 到 18446744073709551615)
float_ float64 的簡(jiǎn)寫
float16 半精度浮點(diǎn):1位符號(hào),5位指數(shù),10位尾數(shù)
float32 單精度浮點(diǎn):1位符號(hào),8位指數(shù),23位尾數(shù)
float64 雙精度浮點(diǎn):1位符號(hào),11位指數(shù),52位尾數(shù)
complex_ complex128 的簡(jiǎn)寫
complex64 由兩個(gè)32位浮點(diǎn)(實(shí)部和虛部)組成的復(fù)數(shù)
complex128 由兩個(gè)64位浮點(diǎn)(實(shí)部和虛部)組成的復(fù)數(shù)

此外,Intel平臺(tái)相關(guān)的C整數(shù)類型 shortlong,long long 和它們的無(wú)符號(hào)版本是有定義的。

NumPy數(shù)值類型是dtype對(duì)象的實(shí)例,每個(gè)都有獨(dú)特的特點(diǎn)。一旦你導(dǎo)入了NumPy:

>>> import numpy as np

這些 dtype 都可以通過(guò) np.bool_np.float32 以及其它的形式訪問(wèn)。

更高級(jí)的類型不在表中給出,請(qǐng)見結(jié)構(gòu)化數(shù)組一節(jié)。

有5種基本的數(shù)值類型:布爾(bool),整數(shù)(int),無(wú)符號(hào)整數(shù)(uint),浮點(diǎn)(float)和復(fù)數(shù)。其中的數(shù)字表示類型所占的位數(shù)(即需要多少位代表內(nèi)存中的一個(gè)值)。有些類型,如intintp,依賴于平臺(tái)(例如32位和64位機(jī))有不同的位數(shù)。在與低級(jí)別的代碼(如C或Fortran)交互和在原始內(nèi)存中尋址時(shí)應(yīng)該考慮到這些。

數(shù)據(jù)類型可以用做函數(shù),來(lái)將Python類型轉(zhuǎn)換為數(shù)組標(biāo)量(詳細(xì)解釋請(qǐng)見數(shù)組標(biāo)量一節(jié)),或者將Python的數(shù)值序列轉(zhuǎn)換為同類型的NumPy數(shù)組,或者作為參數(shù)傳入接受dtype的關(guān)鍵詞的NumPy函數(shù)或方法中,例如:

>>> import numpy as np
>>> x = np.float32(1.0)
>>> x
1.0
>>> y = np.int_([1,2,4])
>>> y
array([1, 2, 4])
>>> z = np.arange(3, dtype=np.uint8)
>>> z
array([0, 1, 2], dtype=uint8)

數(shù)組類型也可以由字符代碼指定,這主要是為了保留舊的包的向后兼容,如Numeric。一些文檔仍舊可能這樣寫,例如:

>>> np.array([1, 2, 3], dtype="f")
array([ 1.,  2.,  3.], dtype=float32)

我們推薦用 dtype 對(duì)象來(lái)取代。

要轉(zhuǎn)換數(shù)組類型,使用 .astype() 方法(推薦),或者將類型自身用作函數(shù),例如:

>>> z.astype(float)                 
array([  0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)

需要注意的是,上面我們使用Python的浮點(diǎn)對(duì)象作為 dtype。NumPy知道int是指np.int_,boolnp.bool_floatnp.float_,complexnp.complex_ 。其他數(shù)據(jù)類型在Python中沒(méi)有對(duì)應(yīng)。

通過(guò)查看 dtype 屬性來(lái)確定數(shù)組的類型:

>>> z.dtype
dtype("uint8")

dtype 對(duì)象還包含有關(guān)類型的信息,如它的位寬和字節(jié)順序。數(shù)據(jù)類型也可以間接用于類型的查詢屬性,例如檢查是否是整數(shù):

>>> d = np.dtype(int)
>>> d
dtype("int32")

>>> np.issubdtype(d, int)
True

>>> np.issubdtype(d, float)
False
數(shù)組標(biāo)量

NumPy一般以數(shù)組標(biāo)量返回?cái)?shù)組元素(帶有相關(guān)dtype的標(biāo)量)。數(shù)組標(biāo)量不同于Python標(biāo)量,但他們中的大部分可以互換使用(一個(gè)主要的例外是2.x之前的Python,其中整數(shù)數(shù)組標(biāo)量不能作為列表和元組的下標(biāo))。也有一些例外,比如當(dāng)代碼需要標(biāo)量的一個(gè)非常特定的屬性,或檢查一個(gè)值是否是特定的Python標(biāo)量時(shí)。一般來(lái)說(shuō),總是可以使用相應(yīng)的Python類型函數(shù)(如int,float,complex,str,unicode),將數(shù)組標(biāo)量顯式轉(zhuǎn)換為Python標(biāo)量來(lái)解決問(wèn)題。

使用數(shù)組標(biāo)量的主要優(yōu)點(diǎn)是,它們保留了數(shù)組的類型(Python可能沒(méi)有匹配的標(biāo)量類型,如int16)。因此,使用數(shù)組標(biāo)量確保了數(shù)組和標(biāo)量之間具有相同的行為,無(wú)論值在不在數(shù)組中。NumPy標(biāo)量也有許多和數(shù)組相同的方法。

擴(kuò)展精度

Python 的浮點(diǎn)數(shù)通常都是64位的,幾乎相當(dāng)于 np.float64 。在一些不常見的情況下,更精確的浮點(diǎn)數(shù)可能更好。是否可以這樣做取決于硬件和開發(fā)環(huán)境:具體來(lái)說(shuō),x86 機(jī)器提供了80位精度的硬件浮點(diǎn)支持,雖然大多數(shù) C 編譯器都以 long double 類型來(lái)提供這個(gè)功能,但 MSVC (標(biāo)準(zhǔn)的Windows版本)中 long doubledouble 一致。NumPy中可以通過(guò) np.longdouble 來(lái)使用編譯器的 long double (復(fù)數(shù)為 np.clongdouble )。你可以通過(guò) np.finfo(np.longdouble) 來(lái)了解你的 numpy 提供了什么。

NumPy 不提供比 C 的 long double 精度更高的 dtype;特別是128位 IEEE 四精度數(shù)據(jù)類型(Fortran 的 REAL*16)是不能用的。

為了高效的內(nèi)存對(duì)齊,np.longdouble通常填充零位來(lái)存儲(chǔ),共96位或128位。哪個(gè)更有效取決于硬件環(huán)境;通常在32位系統(tǒng)中,他們被填充到96位,而在64位系統(tǒng),他們通常是填充到128位。np.longdouble 以系統(tǒng)默認(rèn)的方式填充;而 np.float96np.float128 為那些需要特定填充位的用戶提供。盡管名字不同,np.float96np.float128都只提供和np.longdouble相同的精度,也就是說(shuō),大多數(shù) x86 機(jī)器上面只有80位,標(biāo)準(zhǔn)Windows版本上只有64位。

注意,即使np.longdouble比Python的float精度更高,也很容易失去額外的精度,因?yàn)镻ython經(jīng)常強(qiáng)行以float來(lái)傳值。例如,%格式化運(yùn)算符要求其參數(shù)轉(zhuǎn)換成標(biāo)準(zhǔn)的Python類型,因此它不可能保留額外的精度,即使要求更多的小數(shù)位數(shù)。可以使用1 + np.finfo(np.longdouble).eps來(lái)測(cè)試你的代碼。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37845.html

相關(guān)文章

  • Numpy 中文用戶指南 1. 安裝

    摘要:包的核心是對(duì)象。但有個(gè)例外,包括對(duì)象數(shù)組的元素大小是不同的。序列大小和速度在科學(xué)計(jì)算中尤為重要。例如考慮兩個(gè)長(zhǎng)度相同的列表中每個(gè)元素相乘的情況。此外,編碼所需的工作量隨數(shù)據(jù)維數(shù)的增加而增加。這些信息主要用于高級(jí)用戶。 譯者:飛龍 1.1 NumPy 是什么? 原文:What is NumPy? NumPy是Python中用于科學(xué)計(jì)算的基礎(chǔ)包。它是一個(gè)Python庫(kù),提供多維數(shù)組對(duì)象,各...

    mochixuan 評(píng)論0 收藏0
  • 一文帶你斬殺Python之Numpy??Pandas全部操作【全網(wǎng)最詳細(xì)】???

    目錄Numpy簡(jiǎn)介Numpy操作集合1、不同維度數(shù)據(jù)的表示1.1 一維數(shù)據(jù)的表示1.2 二維數(shù)據(jù)的表示1.3 三維數(shù)據(jù)的表示2、 為什么要使用Numpy2.1、Numpy的ndarray具有廣播功能2.2 Numpy數(shù)組的性能比Python原生數(shù)據(jù)類型高3 ndarray的屬性和基本操作3.1 ndarray的基本屬性3.2 ndarray元素類型3.3 創(chuàng)建ndarray的方式3.4 ndarr...

    asoren 評(píng)論0 收藏0
  • 第1話 TensorFlow基礎(chǔ)概念 (計(jì)算圖、張量、會(huì)話、常量、變量、占位符)

    摘要:張量的命名形式,為節(jié)點(diǎn)的名稱,表示當(dāng)前張量來(lái)自來(lái)自節(jié)點(diǎn)的第幾個(gè)輸出。,要求的輸入對(duì)象是一個(gè)但是它的輸出是一個(gè)數(shù)組輸出其他基本概念常量變量占位符常量中使用常量很簡(jiǎn)單,如,。返回的的類型返回的的形狀的名字布爾值,用于驗(yàn)證值的形狀。 showImg(https://segmentfault.com/img/bVbvlKO?w=4938&h=1679);(代碼基于tensorflow 1.14...

    makeFoxPlay 評(píng)論0 收藏0
  • Python機(jī)器學(xué)習(xí)入門資料整理

    摘要:在基本語(yǔ)法入門之后,就要準(zhǔn)備選一個(gè)研究方向了。是自己比較感興趣的方向,可是,導(dǎo)師這邊的數(shù)據(jù)處理肯定不能由我做主了。真的挺愁人的還有幾個(gè)月就要進(jìn)行春季實(shí)習(xí)招聘了,加油總結(jié)一下機(jī)器學(xué)習(xí)方面的資料吧。 在python基本語(yǔ)法入門之后,就要準(zhǔn)備選一個(gè)研究方向了。Web是自己比較感興趣的方向,可是,導(dǎo)師這邊的數(shù)據(jù)處理肯定不能由我做主了。paper、peper、paper……真的挺愁人的 還有幾個(gè)...

    Rango 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<