偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

這3個函數(shù),是你學習Numpy的基礎!

開發(fā) 后端
說白了,就是講述3個函數(shù)。當然,這只是numpy函數(shù)中的冰山一角。這里只是介紹在學習numpy過程中,最先遇到的幾個函數(shù)。

[[398496]]

 1. 本文介紹

今天為大家介紹以下內容:

  •  Ⅰ ndarray數(shù)組與列表的相互轉化;
  •  Ⅱ ndarray數(shù)組的數(shù)據(jù)類型轉化;
  •  Ⅲ 改變ndarray數(shù)組的形狀;

說白了,就是講述3個函數(shù)。當然,這只是numpy函數(shù)中的冰山一角。這里只是介紹在學習numpy過程中,最先遇到的幾個函數(shù)。

2. ndarray數(shù)組與列表的相互轉化

當你學習numpy的時候,我就默認你肯定已經學過Python基礎了。對于list列表這個基本數(shù)據(jù)類型,你肯定不會感到陌生。

那么我們如何實現(xiàn) “列表” 與 “數(shù)組” 之間的相互轉化呢?

① 列表轉數(shù)組:直接將一個列表傳入array()函數(shù)中 

  1. listlist1 = list(range(10))  
  2. print(list1)  
  3. array1 = np.array(list1)  
  4. print(array1) 

結果如下:

② 數(shù)組轉列表:調用數(shù)組的tolist()方法 

  1. array2 = np.arange(10)  
  2. print(array2)  
  3. list2 = array2.tolist()  
  4. print(list2) 

結果如下:

3. ndarray數(shù)組的數(shù)據(jù)類型轉化

記住一句話:numpy中的數(shù)據(jù)類型轉換,不要使用x.dtype修改元素的數(shù)據(jù)類型,最好用x.astype()這種方式。

① numpy中常用的的數(shù)據(jù)類型

這里只說明一下numpy中常用的數(shù)據(jù)類型,int類型和float類型,但是一般都不是直接寫int和float的,而是像int32、float64這樣的寫法,因此我們就簡單說一下這個32或64的含義。

在計算機中,最底層執(zhí)行的是0和1組成的二進制指令,一個0或者1就代表著一個二進制位,又叫"比特位(bit)",這里的32或64就是代表二進制位。

根據(jù)計算機的換算單位,1字節(jié)=8二進制位,即"1bytes=8bit",因此,根據(jù)這種換算:"32bit-4bytes"、"64bit=8bytes"。

由上述分析,我們現(xiàn)在對int32做一個總結,int32說明了該數(shù)組中每個元素的數(shù)據(jù)類型是int32,同時通過32我們又可以知道,該數(shù)組中每一個元素的存儲空間是4字節(jié),那么這個范圍大致是[-2147483648,2147483647]。

② 使用dtype原地修改數(shù)組的數(shù)據(jù)類型,會出現(xiàn)什么問題? 

  1. x = np.array([1.2,3.4,5.6],dtype=np.float64)  
  2. print(x)  
  3. print(x.dtype)  
  4. print(x.nbytes)  
  5. # --------------------------------------------  
  6. x.dtype="float32"  
  7. print(x)  
  8. print(x.nbytes)  
  9. # --------------------------------------------  
  10. x.dtype="float16" 
  11. print(x)  
  12. print(x.nbytes) 

結果如下:

為什么會出現(xiàn)上述現(xiàn)象?

通過上面的測試發(fā)現(xiàn),當我們使用"dtype"修改數(shù)組的數(shù)據(jù)類型的時候,比特位(也就是一個"二進制位”)每壓縮為原來的二分之一,數(shù)組中的元素個數(shù)就會變?yōu)樵瓉淼膬杀丁?/p>

這是為什么呢?

數(shù)組一旦創(chuàng)建,它的數(shù)據(jù)類型也就定了,也就相當于開辟了一塊內存,用于存儲這個數(shù)組了,下面用一個公式形象說明上述現(xiàn)象的原因。

假設某個數(shù)組有x個元素,采用的數(shù)據(jù)類型是int64,這個數(shù)據(jù)類型占用的內存大小為8字節(jié),因而整個數(shù)組占用的內存大小為8*x。

當數(shù)據(jù)類型變?yōu)閕nt32的時候,數(shù)組中數(shù)據(jù)類型就變成了4字節(jié),通過上面的計10算我們已經知道這個數(shù)組開辟的內存為8x,因此元素個數(shù)就變成了8x/4-2*x,11 就是說,數(shù)組元素變?yōu)榱嗽瓉淼?倍。

③ 使用astype()函數(shù)修改數(shù)組的數(shù)據(jù)類型:相當于新創(chuàng)建了一個數(shù)組 

  1. z = np.array([1.5,3.7,4.8])  
  2. print(z)  
  3. print(z.dtype)  
  4. zzz = z.astype(np.float32) 
  5. print(zz)  
  6. print(zz.dtype) 

結果如下:

4. 改變ndarray數(shù)組的形狀

① 使用numpy中的reshape()函數(shù)修改數(shù)組對象 

  1. xx = np.arange(10).reshape(2,5)  
  2. xxx = np.reshape(xx,(5,2))  
  3. print(xxx) 

結果如下:

② 使用數(shù)組對象的reshape()方法修改數(shù)組對象 

  1. yy = np.arange(10).reshape(2,5)  
  2. print(yy) 

結果如下:

③ 改變數(shù)組形狀時,如果維度大于1,可以將“最后一個維度”設置為-1 

  1. p = np.arange(6).reshape(2,3)  
  2. print(p)  
  3. q = np.arange(6).reshape(2,-1)  
  4. print(q) 

結果如下:

注意:可以這樣做的原因在于,當你指明了前面的維度,最后一個維度會根據(jù)數(shù)組元素個數(shù)和前面的維度數(shù),自動計算出最后一個維度的維度數(shù),也就是說【維度一 * 維度二 * … * 維度N = 元素個數(shù)】。 

 

責任編輯:龐桂玉 來源: Python中文社區(qū) (ID:python-china)
相關推薦

2023-06-01 16:41:39

NumPyPython

2020-09-25 16:20:21

Python內置函數(shù)字符串

2022-11-03 07:07:49

函數(shù)Pandascsv

2021-06-10 07:59:40

Linux 系統(tǒng)硬件操作系統(tǒng)

2020-10-13 14:54:11

機器學習技術工具

2021-08-15 23:05:24

手機技術音量

2018-04-03 14:49:24

2019-11-06 15:14:16

PythonNumbersSquare

2020-03-10 08:55:50

PandasNumPy函數(shù)

2021-07-19 22:40:56

Windows 11Windows微軟

2018-06-04 15:29:39

工程師心態(tài)技術線

2019-07-24 09:06:56

電腦程序員搜索引擎

2020-05-12 09:03:42

VS擴展代碼開發(fā)

2016-10-09 20:07:43

2019-06-14 10:56:43

JavaMaven編程語言

2020-07-07 08:51:52

編程語言C語言Java

2025-04-21 17:55:25

2015-11-06 09:41:03

圖標可視化

2015-11-25 14:12:08

設計App技術框架開發(fā)

2020-04-29 08:25:14

黑客安全工具
點贊
收藏

51CTO技術棧公眾號