您好,登錄后才能下訂單哦!
周一啦,工作使我快樂使我開心,這一期的 Python學習教程 想跟大家講一下Numpy系列,創建數組的三大絕招,絕招哈,都傳授給你們啦!
創建Numpy數組的三大絕招
1.使用函數np.array
2.使用便捷的內置函數
3.使用隨機庫函數
Numpy庫的核心對象便是ndarray數組,又稱n維數組。要知道,基礎數據的統計、變換等運算都是基于數組對象的,所以對于ndarray的掌握至關重要。而所謂工欲善其事必先利其器,工具我們暫時是搞明白了,至于怎么打造出來,這塊得好好講講了。這篇 Python學習教程 的主要目的是幫助同學們更好地了解創建Numpy數組的三大絕招。
看過我 Python學習教程 的童鞋們,在“人生苦短,我用Python”的取經之路上,想必都知道list列表,這是Python內置的一種基本數據類型。而ndarray數組便可通過對list的轉換來進行創建,只要簡單地將Python列表傳遞給數組函數np.array()即可。
a = np.array([1,2,3])a
array([1, 2, 3])
當然,上例得到的只是一維數組,想要多維的,請將一系列的列表傳遞給數組函數,但要保證()內部的數據類型是list,這點很重要。
b = np.array([[1, 2, 3], [4, 5, 6]])b
array([[1, 2, 3],[4, 5, 6]])
就這樣,我們依次創建了一維數組a與二維數組b,創建ndarray數組的第一招是不是很簡單呢,你get到了嗎?
在Numpy庫中,np.array()給我們提供了創建數組的簡單方法,讓我們卯足了盡頭,準備開始揭開Numpy的面紗,大干一場。但突然,一盆冷水潑身上,關鍵問題來了,如果我們想創建由0到19的數字序列數組,那是不是得一個數字一個數字地敲,創建0到100的呢?創建多維的呢?不敢想象!!!
其實,Numpy庫很人性化地為我們提供了非常多的內置函數,用于便捷地創建數組,下面我們來看一看
1.np.arange(),創建遞增序列
#創建一個值范圍為0到19的數組c = np.arange(20)#arange搭配reshape,創建從0-19的4行5列數組d = np.arange(20).reshape(4,5)d
array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]])
注意:這里要掌握arange()的結構,np.arange(x)為左閉右開結構,數據從0開始,到x-1結束,生成規則遞增序列,同時也可以指定arange的3s參數,start、stop與step。
2.np.ones(shape=,dtype=),創建全為1的數組矩陣
e = np.ones((3,4))e
array([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]])
注意:shape為元組格式,dtype可以決定數據類型
3.np.zeros(shape=,dtype=),創建全為0的數組
f = np.zeros((2,4))
array([[0., 0., 0., 0.], [0., 0., 0., 0.]])
4.np.eye(M),創建對角線為1,其余為0 的數組
g = np.eye(3)
array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]])
5.np.full(shape=,fill_value=),任意填充數字
h = np.full((2,2), 3)
array([[3, 3], [3, 3]])
np.linspace(start,stop,num),線性區間等分,linspace是左閉右閉
#將0-10區間等分4份i = np.linspace(0, 10, num=4)i
array([ 0., 3.333, 6.666, 10.])
以上的6個簡單操作,是不是非常貼心呢,狂敲666有木有,下面豁出去了,再為各位童鞋們們獻上最后一招大絕招!
Numpy也提供random模塊,來幫助我們去創建隨機性的序列,從此生成一組隨機數就變得so easy,下面我們就來瞧一瞧。
1.np.random.random(size),生成0-1的隨機數,左閉右開,size表示個數,可以是一維、二維或者三維
np.random.random((2,2))
array([[0.31153256 , 0.128392402], [0.023428592, 0.324950205]])
可以看出,生成的數據是集中在0-1的2行2列隨機數據。
2.np.random.randint(low=,hight=,size=),生成整數類型的隨機數,low最小值,hight最大值,size個數
np.random.int(0,10,3)
array([1 , 5 , 7 ])
3.np.random.randn(size),生成標準正態分布,size個數
代碼自己挖掘,敲起來試試看
4.np.random.normal(loc,scale,size),生成非標準正態分布
代碼自己挖掘,敲起來試試看呀
對于隨機數的創建,姑且掌握這4個技巧,所謂來日方長,后面如果接觸到的未提及的方法,再來詳細聊聊。更多的 Python學習教程 也會繼續為大家更新哦!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。