Numpy基礎函數小結(random,sum,tile,hstack,fliplr,cumprod)
Numpy基礎函數小結
Author: Labyrinthine Leo
?? Init_time: 2020.11.30
Index Words: Numpy
公眾號:Leo的博客城堡
Numpy的幾個簡單函數小結
筆者簡單介紹一下numpy
中的幾個矩陣計算函數。
1、 np.rondom.random()
該函數根據傳入的size
參數隨機生成[0.0,1.0)
之間的值。
>>>np.random.random((2,3)) # 產生兩行三列的矩陣
[[0.90340192 0.1374747 0.13927635]
[0.80739129 0.39767684 0.1653542 ]]
>>>1-np.random.random((3,)) # 取值范圍變為(0.0,1.0]
[0.07249142 0.65223414 0.2491879 ]
2、 np.random.uniform()
該函數有三個參數取值的下界、上界和矩陣維度,同上,左閉右開(貌似numpy
中均是如此),然后在此范圍中均勻的取size
大小的矩陣。
>>>np.random.uniform(1, 10, (2, 3))
[[7.72409478 6.00616211 2.22809703]
[1.53925921 2.0920911 1.40096691]]
3、 np.random.randint()
該函數只能取整數,注意當前兩個定界的參數有一個缺失時,則默認取到[0, low)
,但此時對維度必須使用size
關鍵字指定,且界值必須大于0。
>>>np.random.randint(-5, 10, (2, 6))
[[ 3 -4 5 -1 7 9]
[ 6 9 -2 -2 6 5]]
>>>np.random.randint(6, size=(2, 5)) # 必須使用size關鍵字,且界值大于0
[[5 4 3 0 0]
[0 4 5 1 5]]
4、 np.sum()
注意里面的axis
參數,表示對某個維度的值進行求和,如果是0,則表示從行選取元素那就是對列進行求和,同理如果是1,則表示從列中選取元素那就是對行進行求和。我們要保持輸出結果的維度和輸入矩陣相同,則設置參數keepdims
為True
即可。
>>>x = np.random.random((3, 10))
[[0.99732285 0.17234051 0.13713575 0.93259546 0.69681816 0.06600017
0.75546305 0.75387619 0.92302454 0.71152476]
[0.12427096 0.01988013 0.02621099 0.02830649 0.24621107 0.86002795
0.53883106 0.55282198 0.84203089 0.12417332]
[0.27918368 0.58575927 0.96959575 0.56103022 0.01864729 0.80063267
0.23297427 0.8071052 0.38786064 0.86354185]]
>>>np.sum(x, axis=1, keepdims=True)
[[6.14610144]
[3.36276484]
[5.50633085]]
>>>np.sum(x, axis=0, keepdims=True)
[[1.40077749 0.77797991 1.13294248 1.52193217 0.96167652 1.72666079
1.52726839 2.11380336 2.15291607 1.69923993]]
5、 np.tile()
該函數傳入兩個參數,一個A
矩陣,一個rpes
表示對矩陣A
復制的形狀,比如reps=(3,2)
,從外到內進行復制,即按行復制三次,按列復制兩次,如:
>>>np.tile([1,2,3,4,5],(3, 2))
[[1 2 3 4 5 1 2 3 4 5]
[1 2 3 4 5 1 2 3 4 5]
[1 2 3 4 5 1 2 3 4 5]]
6、 np.hstack()
該函數對兩個矩陣進行合并,在最里層的元素進行堆疊:
7、 np.fliplr()
該函數對矩陣進行按行翻轉,其實等同于a[:, ::-1]
8、 np.cumprod()
該函數就是按照給定的axis
對元素進行求累積乘,比如[1,2,3]
生成[1 2 6]
,表示[1*1 1*2 1*2*3]
,之所以介紹該函數,正是符合上述目標函數中不斷變化的
x
1
,
x
2
,
…
x
M
?
1
x_1,x_2, \dots x_{M-1}
x1?,x2?,…xM?1?的乘積。
臨淵羨魚不如退而結網
創作不易,如果您覺得這篇文章對你有用,可以點個贊,算是對筆者的支持和激勵!這里是Leo的博客城堡,以Python為核,ML&DL為主,泛之形形色色,輸寥寥拙見,攝浮光掠影,講三兩故事。臨淵羨魚,不如退而結網,持續干貨輸出,有趣的靈魂值得你的關注!
原文可以去筆者的github
主頁:https://github.com/LabyrinthineLeo/Yxs_Git_Learning_repos
查看(如果可以,點個star
也無妨呀,嘿嘿)。
智能推薦
python中numpy.random.gamma()函數
python中numpy.random.gamma()函數 根據官網,地址如下: https://www.w3cschool.cn/doc_numpy_1_11/numpy_1_11-generated-numpy-random-gamma.html?lang=en 運行以上代碼如下: 感悟: “無論哪個行業,老手講質量,新手拼價格,遇到便宜的不是你撿到寶了,而是被新手練手&rdquo...
python numpy基礎(二)random基本使用
(一)設置隨機種子,會使后續的隨機數都會固定下,不會因為程序運行多次而改變 (二)生成隨機數 (三)常用的數學樣本分布:正太分布,標準正太分布 (四)在有限集合中獲取隨機數 (五)numpy洗牌...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
猜你喜歡
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...