本文目錄一覽:
- 1、python數據分析里axis=0/1 行列定義為什麼每次都不同
- 2、numpy基礎——ndarray對象
- 3、python中刪除數據框某個行時,語法df.drop(‘列名’,axis=1)中,使用axis=1,axis=1不是表示行么?
python數據分析里axis=0/1 行列定義為什麼每次都不同
Pandas保持了Numpy對關鍵字axis的用法,用法在Numpy庫的辭彙表當中有過解釋:
軸用來為超過一維的數組定義的屬性,二維數據擁有兩個軸:第0軸沿著行的垂直往下,第1軸沿著列的方
向水平延伸。
如果簡單點來說,就是0軸匹配的是index, 涉及上下運算;1軸匹配的是columns, 涉及左右運算。
給你舉個栗子:
numpy基礎——ndarray對象
numpy 是使用python進行數據分析不可或缺的第三方庫,非常多的科學計算工具都是基於 numpy 進行開發的。
ndarray對象是用於存放同類型元素的多維數組,是numpy中的基本對象之一,另一個是func對象。本文主要內容是: 1 、簡單介紹ndarray對象 ; 2、ndarray對象的常用屬性 ; 3、如何創建ndarray對象 ; 4、ndarray元素訪問 。
它的維度以及個維度上的元素個數由 shape 決定。
標題中的函數就是numpy的構造函數,我們可以使用這個函數創建一個ndarray對象。構造函數有如下幾個可選參數:
實例:
接下來介紹ndarray對象最常用的屬性
實例:
使用 array 函數,從常規的python列表或者元組中創建數組,元素的類型由原序列中的元素類型確定。
實例:
subok 為 True ,並且object是ndarray子類時(比如矩陣類型),返回的數組保留子類類型
某些時候,我們在創建數組之前已經確定了數組的維度以及各維度的長度。這時我們就可以使用numpy內建的一些函數來創建ndarray。
例如:函數 ones 創建一個全1的數組、函數 zeros 創建一個全0的數組、函數 empty 創建一個內容隨機的數組,在默認情況下,用這些函數創建的數組的類型都是float64,若需要指定數據類型,只需要閑置 dtype 參數即可:
上述三個函數還有三個從已知的數組中,創建 shape 相同的多維數組: ones_like 、 zeros_like 、 empty_like ,用法如下:
除了上述幾個用於創建數組的函數,還有如下幾個特殊的函數:
特別地, eye 函數的全1的對角線位置有參數k確定
用法如下:
除了上面兩個函數還有其他幾個類似的從外部獲取數據並創建ndarray,比如: frombuffer 、 fromfile 、 fromiter ,還沒用過,等用到了在詳細記錄
ndarray提供了一些創建二維數組的特殊函數。numpy中matrix是對二維數組ndarray進行了封裝之後的子類。這裡介紹的關於二維數組的創建,返回的依舊是一個ndarray對象,而不是matrix子類。關於matrix的創建和操作,待後續筆記詳細描述。為了表述方便,下面依舊使用 矩陣 這一次來表示創建的二維數組。
對於一維的ndarray可以使用python訪問內置list的方式進行訪問:整數索引、切片、迭代等方式
關於ndarray切片
與內置list切片類似,形式:
array[beg:end:step]
beg: 開始索引
end: 結束索引(不包含這個元素)
step: 間隔
需要注意的是 :
特別注意的是,ndarray中的切片返回的數組中的元素是原數組元素的索引,對返回數組元素進行修改會影響原數組的值
除了上述與list相似的訪問元素的方式,ndarray有一種通過 列表 來指定要從ndarray中獲取元素的索引,例如:
多維ndarray中,每一維都叫一個軸axis。在ndarray中軸axis是非常重要的,有很多對於ndarray對象的運算都是基於axis進行,比如sum、mean等都會有一個axis參數(針對對這個軸axis進行某些運算操作),後續將會詳細介紹。
對於多維數組,因為每一個軸都有一個索引,所以這些索引由逗號進行分割,例如:
需要注意的是 :
多維數組的迭代
可以使用ndarray的 flat 屬性迭代數組中每一個元素
python中刪除數據框某個行時,語法df.drop(‘列名’,axis=1)中,使用axis=1,axis=1不是表示行么?
其實問題理解axis有問題,也許簡單的來記就是axis=0代表往跨行(down),而axis=1代表跨列(across),作為方法動作的副詞。換句話說:使用0值表示沿著每一列或行標籤\索引值向下執行方法;使用1值表示沿著每一行或者列標籤模向執行對應的方法。
軸axis用來為超過一維的數組定義的屬性,二維數據擁有兩個軸:第0軸沿著行的垂直往下,第1軸沿著列的方向水平延伸。
所以問題當中df.drop(『列名』,
axis=1)代表將『列名』對應的列標籤(們)沿著水平的方向依次刪掉。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270208.html