我們知道Pandas是在NumPy的基礎(chǔ)構(gòu)建而來(lái),因此,熟悉NumPy可以更加有效的幫助我們使用Pandas。 NumPy主要用C語(yǔ)言編寫,因此,在計(jì)算還和處理一維或多維數(shù)組方面,它要比Python數(shù)組快得多。 創(chuàng)建數(shù)組數(shù)組的主要作用是在一個(gè)變量中存儲(chǔ)多個(gè)值。NumPy可以輕松地處理多維數(shù)組,示例如下: import numpy as np arr = np.array([2, 4, 6, 8, 10, 12]) print(type(arr))print ("打印新建數(shù)組: ",end="")#使用for循環(huán)讀取數(shù)據(jù) for l in range (0,5): print (arr[l], end=" ")1234567復(fù)制代碼類型:[python] 輸出結(jié)果: <class 'numpy.ndarray'> 打印新建數(shù)組: 2 4 6 8 1012復(fù)制代碼類型:[python] 雖然Python本身沒有數(shù)組這個(gè)說(shuō)法,不過(guò)Python提供一個(gè)array模塊,用于創(chuàng)建數(shù)字、字符類型的數(shù)組,它能夠容納字符型、整型、浮點(diǎn)型等基本類型。示例如下: import array#注意此處的 'l' 表示有符號(hào)int類型 arr = array.array('l', [2, 4, 6, 8, 10, 12]) print(type(arr))print ("新建數(shù)組: ",end="") for i in range (0,5): print (arr[i], end=" ") 1234567復(fù)制代碼類型:[python] 輸出結(jié)果: <class 'array.array'> 新建數(shù)組: 2 4 6 8 1012復(fù)制代碼類型:[python] 布爾索引布爾索引是NumPy的重要特性之一,通常與Pandas一起使用。它的主要作用是過(guò)濾DataFrame中的數(shù)據(jù),比如布爾值的掩碼操作。 下面示例展示了如何使用布爾索引訪問(wèn)DataFrame中的數(shù)據(jù)。 首先創(chuàng)建一組包含布爾索引的數(shù)據(jù),如下所示: import pandas as pd dict = {'name':["Smith", "William", "Phill", "Parker"], 'age': ["28", "39", "34", "36"]} info = pd.DataFrame(dict, index = [True, True, False, True]) print(info)12345復(fù)制代碼類型:[python] 輸出結(jié)果: name ageTrue Smith 28True William 39False Phill 34True Parker 3612345復(fù)制代碼類型:[python] 然后使用.loc訪問(wèn)索引為True的數(shù)據(jù)。示例如下: import pandas as pd dict = {'name':["Smith", "William", "Phill", "Parker"], 'age': ["28", "39", "34", "36"]} info = pd.DataFrame(dict, index = [True, True, False, True])#返回所有為 True的數(shù)據(jù) print(info.loc[True]) 123456復(fù)制代碼類型:[python] 輸出結(jié)果: name ageTrue Smith 28True William 39True Parker 361234復(fù)制代碼類型:[python] 重塑數(shù)組形狀在不改變數(shù)組數(shù)據(jù)的情況下,對(duì)數(shù)組進(jìn)行變形操作,即改變數(shù)組的維度,比如2*3(兩行三列)的二維數(shù)組變維3*2(三行兩列)的二維數(shù)組。變形操作可以通過(guò)reshape()函數(shù)實(shí)現(xiàn)。 示例如下: import numpy as np arr = np.arange(16) print("原數(shù)組: \n", arr) arr = np.arange(16).reshape(2, 8) print("\n變形后數(shù)組:\n", arr) arr = np.arange(16).reshape(8 ,2) print("\n變形后數(shù)組:\n", arr)1234567復(fù)制代碼類型:[python] 輸出結(jié)果: 原數(shù)組: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] 變形后數(shù)組: [[ 0 1 2 3 4 5 6 7] [ 8 9 10 11 12 13 14 15]] 變形后數(shù)組: [[ 0 1] [ 2 3] [ 4 5] [ 6 7] [ 8 9] [10 11] [12 13] [14 15]]123456789101112131415復(fù)制代碼類型:[python] Pdans與NumPy區(qū)別Pandas和NumPy被認(rèn)為是科學(xué)計(jì)算與機(jī)器學(xué)習(xí)中必不可少的庫(kù),因?yàn)樗鼈兙哂兄庇^的語(yǔ)法和高性能的矩陣計(jì)算能力。下面對(duì)Pandas與NumPy進(jìn)行簡(jiǎn)單的總結(jié),如下表所示:
轉(zhuǎn)換ndarray數(shù)組在某些情況下,需要執(zhí)行一些NumPy數(shù)值計(jì)算的高級(jí)函數(shù),這個(gè)時(shí)候您可以使用to_numpy()函數(shù),將DataFrame對(duì)象轉(zhuǎn)換為NumPyndarray數(shù)組,并將其返回。函數(shù)的語(yǔ)法格式如下: DataFrame.to_numpy(dtype=None, copy=False) 1復(fù)制代碼類型:[python] 參數(shù)說(shuō)明如下: dtype:可選參數(shù),表示數(shù)據(jù)類型; copy:布爾值參數(shù),默認(rèn)值為Fales,表示返回值不是其他數(shù)組的視圖。 下面使用示例,了解該函數(shù)的使用方法。示例1: info = pd.DataFrame({"P": [2, 3], "Q": [4.0, 5.8]})#給info添加R列 info['R'] = pd.date_range('2020-12-23', periods=2) print(info)#將其轉(zhuǎn)化為numpy數(shù)組 n=info.to_numpy() print(n) print(type(n))12345678復(fù)制代碼類型:[python] 輸出結(jié)果: [[2 4.0 Timestamp('2020-12-23 00:00:00')] [3 5.8 Timestamp('2020-12-24 00:00:00')]]12復(fù)制代碼類型:[python] 可以通過(guò)type查看其類型,輸出如下: numpy.ndarray1復(fù)制代碼類型:[python] 示例2: import pandas as pd #創(chuàng)建DataFrame對(duì)象info = pd.DataFrame([[17, 62, 35],[25, 36, 54],[42, 20, 15],[48, 62, 76]], columns=['x', 'y', 'z']) print('DataFrame\n----------\n', info) #轉(zhuǎn)換DataFrame為數(shù)組arrayarr = info.to_numpy() print('\nNumpy Array\n----------\n', arr) 12345678復(fù)制代碼類型:[python] 輸出結(jié)果: DataFrame ---------- x y z0 17 62 351 25 36 542 42 20 153 48 62 76Numpy Array ---------- [[17 62 35] [25 36 54] [42 20 15] [48 62 76]] |
|
來(lái)自: 碼農(nóng)9527 > 《Python》