c++随机打乱数组_NumPy数组基本介绍
本文作者:孫曉玲
文字編輯:錢夢璇
技術總編:張? ?邯
NumPy是短語“Numerical Python”的縮寫,NumPy庫是一個功能強大的Python庫,主要用于對多維數組進行計算,其提供了大量的庫函數和算法,幫助程序員輕松地進行數值計算。作為一個第三方庫,NumPy庫在使用之前需要提前安裝,最簡單的方式就是在命令提示符窗口鍵入“pip install numpy”。
NumPy庫中的矩陣模塊為ndarray(數組)對象。調用NumPy數組的array函數的基本語法如下:
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)各參數的含義如下表所示:1
生成NumPy數組我們先生成一個NumPy數組,輸出查看一下:
import numpy as np a = np.array([1,2,3,4,5,6,7,8,9,10]) print(a)輸出結果:
輸出的結果為類似列表的形式,但明顯看出不同于列表,列表的元素之間是由逗號分隔,輸出結果的元素之間以空格分隔。
我們可以對生成的數組用數據方法查看其屬性,這些方法對一般的數據類型都是通用的。
a = np.array([1,2,3,4,5,6,7,8,9,10]) print(a.sum()) #計算總和print(a.min()) #求最小值print(a.max()) #求最大值print(a.cumsum()) #計算累計和print(type(a)) # 查看數據類型print(a.dtype) # >查看數組元素數據類型print(a.size) # 長度print(a.shape) # 形狀輸出結果:
通過數據分析方法可以查看“a”的數據信息并做一些簡單的描述性統計。由輸出結果我們也可以發現,“a”的數據類型為“numpy.ndarray”,確實不是列表。
2
NumPy數組屬性學習一個新的數據類型,首先需要知道如何查看它的屬性,下面我們通過生成一個二維數組學習查看NumPy數組屬性的一些方法及屬性含義。
a = np.array([[11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], [26, 27, 28 ,29, 30], [31, 32, 33, 34, 35]])print(type(a)) # NumPy數組實際上被稱為ndarrayprint(a.dtype) # int32print(a.size) # 25print(a.shape) # (5, 5) 數組的形狀是它有多少行和列print(a.itemsize) # 4print(a.ndim) # 2print(a.nbytes) # 100itemsize屬性是每個元素占用的字節數。這個數組的數據類型是int32,一個int32中有32位,一個字節中有8位,除以32除以8,你就可以得到它占用了多少字節,在本例中是4(因電腦而異)。ndim 屬性是數組的維數,這里是二維數組。nbytes 屬性是數組中的所有數據消耗掉的字節數,一共25個元素,每個元素占4個字節,一共占4*25=100個字節。
3
NumPy數組切片往往我們在使用數據的時候并不是對整個數據進行操作,我們需要的是滿足一定條件的數據,所以數據切片在數據清洗中起著至關重要的作用,接下來將為大家介紹NumPy數組的切片機制,這里以剛剛生成的二維數組為例。
多維數組的切片以逗號為分隔對各維度切片,在二維數組中就只有一個逗號,逗號前為行切片逗號后為列切片。現在我想得到以下四種切片結果:
1.所有行第一列;
2.第0行所有列;
3.第0列1到4行;
4.索引值能被2整除的所有行能被2整除的所有列。
為了輸出結果的美觀,這里使用交互式呼叫方式輸出。
a[:, 1]a[0, 1:4]a[1:4, 0]a[::2,::2]輸出結果:
這樣就得到切片得到我們想要的數據啦。
4
常用快捷NumPy數組函數現在為大家介紹幾個常用的快捷生成NumPy數組的函數。1.全零數組??可以指定數組的行列元素個數,具體程序如下:
import numpy as npa = np.zeros((5,5)) # 創建全0數組print(a)得到了一個5×5的全零數組,輸出結果如下:2.全一數組有時候,我們需要一個全一數組,具體程序如下:b = np.ones((5,2)) # 創建全1數組print(b)得到了一個5×2的全一數組,輸出結果如下:3.全指定數字數組??更一般的,我們也可以得到全部都是指定數字的數組,例如全部是數字7,具體命令如下:
c = np.full((2,2), 7) # 創建全7數組print(c)得到了一個2×2的全部是數字7數組,輸出結果如下:4.單位矩陣數組??如果想得到單位矩陣,可用如下程序:
d = np.eye(3) # 創建單位矩陣,3行3列print(d)?得到單位矩陣如下:?
5.隨機數數組??類似于stata中的隨機數函數,NumPy也有創建隨機數的函數,程序如下:
e = np.random.random((2,2)) # 創建隨機數數組print(e)得到2×2的隨機得到單位矩陣如下:?
關于NumPy數組的基本內容就介紹到這里啦,希望對您有所幫助。
對我們的推文累計打賞超過1000元,我們即可給您開具發票,發票類別為“咨詢費”。用心做事,不負您的支持!往期推文推薦“個性化”sortobs命令,教你實現排序自由
攜手戰疫,我們在行動恭賀新春,平安順遂|各省疫情關注度地圖
過年觀影指南(二)
過年觀影指南(一)
egenmore隱藏功能——進制轉換
相遇insobs,如暗室逢燈
數據可視化之地理坐標系
SFI:Stata與Python的數據交互手冊(一)Stata模擬構建朋友圈一個粉絲的疑惑——?local和scalar新的一年,效率滿滿~(下)自科基金項目信息爬取
rename group批量修改變量名
小命令,大不同——insobs插入新值
新的一年,效率滿滿~(上)
圓蛋快樂BvD最后一彈——宏觀數據寶典關于我們
微信公眾號“Stata and Python數據分析”分享實用的stata、python等軟件的數據處理知識,歡迎轉載、打賞。我們是由李春濤教授領導下的研究生及本科生組成的大數據處理和分析團隊。
此外,歡迎大家踴躍投稿,介紹一些關于stata和python的數據處理和分析技巧。投稿郵箱:statatraining@163.com投稿要求:1)必須原創,禁止抄襲;2)必須準確,詳細,有例子,有截圖;注意事項:1)所有投稿都會經過本公眾號運營團隊成員的審核,審核通過才可錄用,一經錄用,會在該推文里為作者署名,并有賞金分成。2)郵件請注明投稿,郵件名稱為“投稿+推文名稱”。3)應廣大讀者要求,現開通有償問答服務,如果大家遇到有關數據處理、分析等問題,可以在公眾號中提出,只需支付少量賞金,我們會在后期的推文里給予解答。總結
以上是生活随笔為你收集整理的c++随机打乱数组_NumPy数组基本介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++用什么软件编程_为什么要学习“C”
- 下一篇: 50个直击灵魂的问题_当妈后,你想过这三