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