numpy列相加_Python数据分析入门:NumPy基础:数组与向量化计算
本章重點(diǎn)內(nèi)容:
1、NumPy ndarray:多維數(shù)組對(duì)象
1)生成ndarry
2)ndarray的數(shù)據(jù)類型
3)NumPy數(shù)據(jù)算術(shù)
4)基礎(chǔ)索引與切片
5)布爾索引
6)數(shù)組轉(zhuǎn)置和換軸
2、通用函數(shù):快速的逐元素?cái)?shù)組函數(shù)
3、使用數(shù)組進(jìn)行面向數(shù)組編程
4、使用數(shù)組進(jìn)行文件輸入和輸出
5、偽隨機(jī)數(shù)生成
6、示例:隨機(jī)漫步
接下來(lái)展開詳細(xì)說明,如下
1、NumPy ndarray:多維數(shù)組對(duì)象
NumPy,是Numerical Python的簡(jiǎn)稱,它是目前Python數(shù)值計(jì)算中最為重要的基礎(chǔ)包,大多數(shù)計(jì)算包都提供了基于NumPy的科學(xué)函數(shù)功能,將NumPy的數(shù)組對(duì)象作為數(shù)據(jù)交換的通用語(yǔ)
首先看下NumPy的簡(jiǎn)單使用,如下:
導(dǎo)入numpy進(jìn)行使用,隨機(jī)生成2行3列數(shù)字,然后可以進(jìn)行一些數(shù)學(xué)操作,例如相乘、相加,如下:
一個(gè)ndarray是一個(gè)通用的多維同類數(shù)據(jù)容器,每個(gè)數(shù)組都有一個(gè)shape屬性,表示緯度的數(shù)量,都有一個(gè)dtype屬性,表示數(shù)據(jù)類型,如下:
1)生成ndarry
最簡(jiǎn)單的就是使用array函數(shù),可以將不同的列表轉(zhuǎn)換為數(shù)組,如下:
一般來(lái)說,針對(duì)同等長(zhǎng)度的列表,會(huì)自動(dòng)轉(zhuǎn)換為多維數(shù)組,
可以通過arange生成數(shù)組,類似Python中的range,如下
2)ndarray的數(shù)據(jù)類型
前面我們說過,每個(gè)數(shù)組都會(huì)有一個(gè)數(shù)據(jù)類型的屬性,在創(chuàng)建數(shù)組時(shí),可以聲明不同的數(shù)據(jù)類型,如下:
可以使用astype方法顯示的轉(zhuǎn)換數(shù)組的數(shù)據(jù)類型,如下:
如果字符串表示數(shù)字的含義,也可以通過astype轉(zhuǎn)換成數(shù)字,如下:
3)NumPy數(shù)據(jù)算術(shù)
數(shù)組之所以重要事因?yàn)樗试S進(jìn)行批量操作而無(wú)需任何for循環(huán),在NumPy中,這個(gè)特性成為向量化,算術(shù)操作都會(huì)針對(duì)數(shù)組逐個(gè)元素進(jìn)行,如下:
兩個(gè)數(shù)組間也可以進(jìn)行比較,會(huì)產(chǎn)生一個(gè)布爾值數(shù)組,如下:
4)基礎(chǔ)索引與切片
一維數(shù)組的索引和切片,和Python中的列表相似,如下:
有一個(gè)特別要區(qū)別的地方,就是數(shù)組的切片是原數(shù)組的視圖,不是復(fù)制數(shù)據(jù),所以對(duì)切片的修改都會(huì)反應(yīng)到原數(shù)組上
可以針對(duì)二維及更多緯度的數(shù)組進(jìn)行切片,如下,二維數(shù)組示例:
可以進(jìn)行更多緯度更靈活的切片,如下:
5)布爾索引
假如我們有兩個(gè)數(shù)組,一個(gè)數(shù)組是名字,另一個(gè)名字?jǐn)?shù)組是數(shù)據(jù),每個(gè)名字對(duì)應(yīng)另一個(gè)數(shù)組中對(duì)應(yīng)每行的數(shù)據(jù),可以通過布爾索引相關(guān)數(shù)據(jù),代碼示例如下:
首先,創(chuàng)建一個(gè)名字的數(shù)組,然后隨機(jī)產(chǎn)生對(duì)應(yīng)的數(shù)據(jù),如下:
可以直接對(duì)數(shù)據(jù)進(jìn)行比較操作,如下:
在索引數(shù)組時(shí)可以傳入布爾數(shù)組,如下:
可以選擇除bob之外的數(shù)據(jù),如下:
其中符合【~】表示取反的意思
6)數(shù)組轉(zhuǎn)置和換軸
轉(zhuǎn)置是一種特殊的數(shù)據(jù)重組形式,可以通過transpose方法和特殊的T屬性實(shí)現(xiàn),如下:
在計(jì)算矩陣內(nèi)積的時(shí)候,會(huì)用到轉(zhuǎn)置,計(jì)算內(nèi)積的方法是【.dot】,代碼示例如下:
2、通用函數(shù):快速的逐元素?cái)?shù)組函數(shù)
這里的通用函數(shù),是指對(duì)一個(gè)數(shù)組或者多個(gè)數(shù)組進(jìn)行的函數(shù)運(yùn)算,例如取根號(hào),最大值比較,具體代碼示例如下:
3、使用數(shù)組進(jìn)行面向數(shù)組編程
將條件邏輯作為數(shù)組操作
numpy.where函數(shù)是三元表達(dá)式【x if condition else y】的向量化版本
如果有一個(gè)布爾數(shù)組和兩個(gè)數(shù)值數(shù)組,根據(jù)布爾數(shù)組來(lái)選擇另外兩個(gè)數(shù)組,用該辦法操作如下:
可以對(duì)一個(gè)數(shù)組內(nèi)符合條件的內(nèi)容進(jìn)行替換操作,如下:
數(shù)學(xué)和統(tǒng)計(jì)方法
對(duì)數(shù)組內(nèi)數(shù)據(jù)就和以及求均值,都可以很方便的實(shí)現(xiàn),如下:
排序
數(shù)組也可是使用sort方法進(jìn)行位置排序,如下:
針對(duì)多維數(shù)組,可以指定軸向進(jìn)行排序,如下:
唯一值
可以通過nuique方法計(jì)算數(shù)組內(nèi)的唯一值,去除重復(fù)的內(nèi)容,例如前面中提到的姓名的數(shù)組,具體代碼示例如下:
4、使用數(shù)組進(jìn)行文件輸入和輸出
通過save和load方法來(lái)進(jìn)行存取操作,具體代碼示例如下:
存入數(shù)據(jù):文件格式會(huì)默認(rèn)為npy
讀取數(shù)據(jù):一定要寫出后綴
5、偽隨機(jī)數(shù)生成
前面的示例中已經(jīng)看到和用到來(lái)random的函數(shù),來(lái)隨機(jī)生產(chǎn)數(shù)據(jù),他也可以高效多種概率分布下的完整樣本值數(shù)組,例如使用normal獲得4X4正態(tài)分布樣本數(shù)組,如下:
6、示例:隨機(jī)漫步
本文為作者手打原創(chuàng),如有引用請(qǐng)取得作者同意
說明:本章內(nèi)容基于《利用Python 進(jìn)行數(shù)據(jù)分析 第二版》內(nèi)容學(xué)習(xí)整理
總結(jié)
以上是生活随笔為你收集整理的numpy列相加_Python数据分析入门:NumPy基础:数组与向量化计算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: layui动态添加input_layer
- 下一篇: ios uiview 如何刷新_ios