名稱 | 描述 |
---|---|
bool_ | 布爾型數(shù)據(jù)類型(True 或者 False) |
int_ | 默認(rèn)的整數(shù)類型(類似于 C 語(yǔ)言中的 long,int32 或 int64) |
intc | 與 C 的 int 類型一樣,一般是 int32 或 int 64 |
intp | 用于索引的整數(shù)類型(類似于 C 的 ssize_t,一般情況下仍然是 int32 或 int64) |
int8 | 字節(jié)(-128 to 127) |
int16 | 整數(shù)(-32768 to 32767) |
int32 | 整數(shù)(-2147483648 to 2147483647) |
int64 | 整數(shù)(-9223372036854775808 to 9223372036854775807) |
uint8 | 無(wú)符號(hào)整數(shù)(0 to 255) |
uint16 | 無(wú)符號(hào)整數(shù)(0 to 65535) |
uint32 | 無(wú)符號(hào)整數(shù)(0 to 4294967295) |
uint64 | 無(wú)符號(hào)整數(shù)(0 to 18446744073709551615) |
float_ | float64 類型的簡(jiǎn)寫 |
float16 | 半精度浮點(diǎn)數(shù),包括:1 個(gè)符號(hào)位,5 個(gè)指數(shù)位,10 個(gè)尾數(shù)位 |
float32 | 單精度浮點(diǎn)數(shù),包括:1 個(gè)符號(hào)位,8 個(gè)指數(shù)位,23 個(gè)尾數(shù)位 |
float64 | 雙精度浮點(diǎn)數(shù),包括:1 個(gè)符號(hào)位,11 個(gè)指數(shù)位,52 個(gè)尾數(shù)位 |
complex_ | complex128 類型的簡(jiǎn)寫,即 128 位復(fù)數(shù) |
complex64 | 復(fù)數(shù),表示雙 32 位浮點(diǎn)數(shù)(實(shí)數(shù)部分和虛數(shù)部分) |
complex128 | 復(fù)數(shù),表示雙 64 位浮點(diǎn)數(shù)(實(shí)數(shù)部分和虛數(shù)部分) |
使用astype方法來(lái)顯式的轉(zhuǎn)換數(shù)組的數(shù)據(jù)類型
arr = np.array([1,2,3,4,5]) print(arr.dtype) print(arr) float_arr = arr.astype('float32')#也可以寫作 arr.astype(np.float32) print(float_arr.dtype) print(float_arr)
int32 [1 2 3 4 5] float32 [1. 2. 3. 4. 5.]
注意:將內(nèi)容為數(shù)字的字符串?dāng)?shù)組轉(zhuǎn)為數(shù)字是可以的,當(dāng)內(nèi)容是浮點(diǎn)型數(shù)字的時(shí)候只能轉(zhuǎn)成 float,不能 int,只有是整數(shù)的時(shí)候才可以轉(zhuǎn)成int
用其他數(shù)組的dtype來(lái)轉(zhuǎn)換數(shù)據(jù)類型:
int_arr = np.arange(10) calibers = np.array([.22, .270, .357], dtype=np.float64) print(calibers) arr_last = int_arr.astype(calibers.dtype) print(arr_last.dtype) print(arr_last)
[0.22 0.27 0.357] float64 [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
補(bǔ)充:Python3:numpy的簡(jiǎn)單使用(ndarray的基本屬性以及基本生成數(shù)組的方法)
由于本人學(xué)習(xí)需要,所以開始學(xué)習(xí)numpy,這個(gè)科學(xué)計(jì)算工具,本文用于復(fù)習(xí)當(dāng)前所學(xué)習(xí)的內(nèi)容(當(dāng)前使用numpy的版本為:1.17.4)
1.ndarray的基本的屬性
2.生成數(shù)組的方法(主要測(cè)試生成0和生成1的方法:ones和zeros方法)
# 測(cè)試當(dāng)前Numpy中的narray中的屬性 # 使用的numpy的版本為:1.17.4 import numpy as np default_array = [[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]] np_array = np.array(default_array) print("當(dāng)前存儲(chǔ)后的數(shù)據(jù)的dtype類型為:{}".format(np_array.dtype)) # int32 print("查看這個(gè)對(duì)象的實(shí)際類型:{}".format(type(np_array))) # print("查看這個(gè)對(duì)象的形狀:{}".format(np_array.shape)) # (2,6) print("當(dāng)前這個(gè)對(duì)象的字節(jié)長(zhǎng)度:{}".format(np_array.itemsize)) # 4 print("當(dāng)前這個(gè)對(duì)象的長(zhǎng)度(使用python的len方法):{}".format(len(np_array))) # 2 只迭代了一組數(shù)據(jù)外層的二維數(shù)據(jù) print("當(dāng)前這個(gè)對(duì)象的長(zhǎng)度(使用自己的size方法):{}".format(np_array.size)) # 獲取了所有的數(shù)據(jù)的數(shù)量 print(np.array([[1, 2, 3], [1, 2, 3]]).dtype) print(np.array([1.2, 2.2, 3.2]).dtype) # 可以看出當(dāng)前默認(rèn)使用的類型為int32 # 默認(rèn)使用的浮點(diǎn)類型為:float64 # 修改和設(shè)定當(dāng)前的使用的初始化類型 # print(np.array([[1.1,1.2,1.3]],dtype="int32").dtype) print(np.array([[1.1,1.2,1.3]],dtype=np.int32).dtype)
結(jié)果:
1.創(chuàng)建了二維數(shù)據(jù)的時(shí)候使用原生的python的len方法獲取的長(zhǎng)度是外層的長(zhǎng)度,并不是二維數(shù)組實(shí)際內(nèi)容的長(zhǎng)度!
2.通過np.array(數(shù)組)將原來(lái)的python中的數(shù)組轉(zhuǎn)換為ndarray類型的數(shù)據(jù)
3.每一個(gè)ndarray中都會(huì)有一個(gè)數(shù)據(jù)類型使用dtype表示,默認(rèn)使用的整數(shù)類型為int32,浮點(diǎn)類型為float64
4.通過ndarray.size獲取當(dāng)前ndarray中的元素的個(gè)數(shù)
5.通過ndarray.shap獲取當(dāng)前的ndarray的形狀
6.使用np.array()創(chuàng)建ndarray的時(shí)候可以指定當(dāng)前的ndarray的dtype,其形式可以是字符也可以是np.類型
# 使用numpy中的生成的數(shù)組數(shù)據(jù)的方法 import numpy as np # 生成1的操作 np_array = np.zeros([2, 2]) print("當(dāng)前生成的數(shù)據(jù)為:{}".format(np_array)) print("輸出當(dāng)前生成的數(shù)據(jù)的類型為:{}".format(np_array.dtype)) # 說(shuō)明當(dāng)前默認(rèn)產(chǎn)生的數(shù)據(jù)數(shù)據(jù)的類型為float64 # 現(xiàn)在改變當(dāng)前的dtype,直接將當(dāng)前的dtype的數(shù)據(jù)類型設(shè)置為int32 np_array.dtype = np.int32 print("當(dāng)前生成的數(shù)據(jù)為:{}".format(np_array)) print("輸出當(dāng)前生成的數(shù)據(jù)的類型為:{}".format(np_array.dtype)) # 生成1的數(shù)據(jù) np_array_ones = np.ones([2, 2], dtype=np.int32) print(np_array_ones) # 創(chuàng)建一個(gè)未初始化的數(shù)據(jù),默認(rèn)未初始化 x = np.empty([3, 2], dtype=int) print(x)
結(jié)果:
1.使用當(dāng)前的np.zeros(shape)和np.ones(shape)方法生成全是0或者全是1的指定形狀的數(shù)組
2.通過np.empty(shape)生成空的數(shù)組
3.可以通過ndarray.dtype=dtype方式改變當(dāng)前的ndarray的類型
# 從已有的數(shù)組中創(chuàng)建數(shù)據(jù) import numpy as np default_array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] default_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) print(type(default_tuple)) copy_array = np.asarray(default_array) # 用于淺拷貝 copy_tuple = np.asarray(default_tuple) print("asarray數(shù)組后的數(shù)據(jù):{}".format(copy_array)) print("asarray元組后的數(shù)據(jù):{}".format(copy_tuple)) deep_copy_array = np.copy(default_array) print("copy數(shù)組后的數(shù)據(jù):{}".format(deep_copy_array))
1.這里使用np.asarray()方法生成的數(shù)組與原來(lái)的數(shù)組有關(guān)聯(lián),是淺拷貝
2.這里的np.copy()方法生成的另外一份備份數(shù)據(jù),是深拷貝
# 通過固定范圍生成數(shù)組,使用arange方式生成0 到 9之間的數(shù)據(jù),默認(rèn)生成的數(shù)據(jù)為當(dāng)前的為范圍的值,這里的步長(zhǎng)默認(rèn)就是1,結(jié)果中不包含10,這里是按照指定的步長(zhǎng)進(jìn)行迭代 range_array = np.arange(0, 10, dtype=np.int32) print("range_array:{}".format(range_array)) # 通過隨機(jī)方式生成數(shù)組 random_array = np.random.random((2, 2)) print("使用隨機(jī)方式生成數(shù)組:{}".format(random_array)) # 默認(rèn)生成的數(shù)據(jù)為0到1之間的數(shù)據(jù) # 2 生成隨機(jī)的整數(shù) random_array_int = np.random.randint(1, 10, (2, 2)) print("生成隨機(jī)整數(shù):{}".format(random_array_int)) # 在指定范圍中生成15 個(gè) 1到 10之間的數(shù),這是一個(gè)隨機(jī)的數(shù)據(jù),是等距離的,當(dāng)要求的數(shù)據(jù)超過當(dāng)前的范圍的數(shù)據(jù)的時(shí)候默認(rèn)就會(huì)隨機(jī)生成一些數(shù)據(jù) listspace_array = np.linspace(1, 10, 15, dtype=np.int32) # 就是按照一定的等分進(jìn)行劃分為指定個(gè)需要的數(shù)據(jù),這里的結(jié)果中包含10,相當(dāng)于當(dāng)前的等差數(shù)列一樣 print("listspace_array:{}".format(listspace_array))
結(jié)果:
1.當(dāng)前的random方法就是隨機(jī)生成指定區(qū)間的數(shù)據(jù),可以指定類型
2.range就是相當(dāng)于當(dāng)前的python中的range方法,可以指定步長(zhǎng),是一個(gè)[a,b)這中數(shù)據(jù)
3.linspace用于在指定的范圍中按照指定的方式生成數(shù)組,這個(gè)是等差數(shù)列,如果當(dāng)前需要的數(shù)據(jù)大于這個(gè)范圍就會(huì)出現(xiàn)隨機(jī)生成的情況
# 生成一個(gè)等比的數(shù)列,這里面的2 表示生成的樣本的個(gè)數(shù)為2 ,起始數(shù)據(jù)為1,結(jié)束數(shù)據(jù)為4,表示最小為3的1次方到當(dāng)前的3的4次方 equal_ratio_array = np.logspace(1, 4, 2, dtype=np.int32) # 這里的默認(rèn)的底數(shù)為10 表示當(dāng)前最小為10的一次方,最大為當(dāng)前的10的4次方 print("當(dāng)前的等比數(shù)列的數(shù)據(jù)為:{}".format(equal_ratio_array))
當(dāng)前的等比數(shù)列的數(shù)據(jù)為:[ 10 10000]
1.這個(gè)等比具有默認(rèn)的底數(shù)為10,第一個(gè)表示10的1次方,第二個(gè)為生成數(shù)的最大次方為10的4次方,生成的數(shù)據(jù)2表示當(dāng)前生成的等比數(shù)組的長(zhǎng)度為2
2.可以設(shè)定當(dāng)前的底數(shù)值,可以指定當(dāng)前的類型
1.當(dāng)前的numpy這個(gè)模塊可以實(shí)現(xiàn)創(chuàng)建當(dāng)前的數(shù)組,可以生成指定類型和指定形狀的數(shù)組
2.通過numpy可以模擬需要的數(shù)據(jù),產(chǎn)生數(shù)的方式很快!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
標(biāo)簽:銅川 呂梁 通遼 株洲 常德 潛江 阿里 黑龍江
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《NumPy-ndarray 的數(shù)據(jù)類型用法說(shuō)明》,本文關(guān)鍵詞 NumPy-ndarray,的,數(shù)據(jù),類型,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。