日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python多维数据分析_Python 数据分析:numpy 多维数组 ndarray

發布時間:2024/9/3 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python多维数据分析_Python 数据分析:numpy 多维数组 ndarray 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面的文章中,將使用約定俗成的模塊名 np 來表示 NumPy 庫。

1. 多維數組的創建

NumPy 提供了許多常用的函數來創建多維數組,先概覽這些函數的名稱及功能。

函數

說明

array

將輸入數據轉換為ndarray,可顯式指定dtype。

asarray

將輸入轉換為ndarray,如果輸入本身為ndarray則不復制。

arange

類似于range函數,返回的是ndarray而不是列表。

ones、ones_like

根據指定的形狀和dtype創建一個全1數組。ones_like以另一個數組為參數,并根據其形狀和dtype創建一個全1數組。

zeros、zeros_like

類似于ones和ones_like,只不過產生的是全0數組。

empty、empty_like

創建新數組,只分配內存但不填充任何值。

eye、identity

創建一個N*N單位矩陣(對角線為1,其余為0)。

array

語法:

示例:

array 接受一切序列型對象,返回一個 NumPy 數組(ndarray)。如果我們沒有指定元素的數據類型,那么 array 會自動為數組選擇一個合適的數據類型,保存到 dtype 對象中。

2. dtype數據類型

類型

類型代碼

說明

int8

i1、u1

8位整型

int16

i2、u2

16位整型

int32

i4、u4

32位整型

int64

i8、u8

64位整型

float16

f2

半精度浮點數

float32

f4或f

標準單精度浮點數。與C的float兼容。

float64

f8或d

標準雙精度浮點數,與C的double和Python的float對象兼容。

float128

f16或g

擴展精度浮點數

complex64、complex128、complex256

c32

復數

bool

?

布爾類型(True或False)

object

O

Python對象類型

string

S

定長字符串類型(每字符1字節)。

unicode

U

定長unicode類型(字節數由平臺決定)。跟字符串的定義方式一樣。

創建 ndarray 對象時,可以使用類型代碼來表示 dtype

ndarray 對象提供了 astype 方法來轉換其 dtype

3. 基本索引

與python內置的list類似,ndarray 對象也可以通過方括號來索引元素。例如:

不同之處在于,list的切片返回的是新對象,而 ndarray 切片后將返回原始數據的視圖。也就是說,對于切片的任何修改都會反映在源數組上。例如:

要得到一個新的對象,可以通過 arr[3:8].copy() 來獲得副本。

4. 高維度索引

Python 自身可以通過連續的方括號組合來索引多維數組,例如 arr[1][3] 。在 NumPy 中, ndarray 同樣支持這種基本的索引方式。除此之外,ndarray 還支持另一種索引方式:

通過逗號來分隔不同維度的索引,即獲取二維數組 arr 中第一行第三列的元素。

基于此,我們可以在各維度中分別進行切片索引:

這表示,獲取由二維數組的2、3、4行第0、1、2列元素所構成的3x3二維數組。

5. 布爾型索引

布爾型索引,就是用一個形狀與目標數組一模一樣的布爾型數組,來索引目標數組對應位置的元素。布爾型數組元素的值只有True和False兩種,True對應的目標數組元素將被選取,而False對應的元素將被忽略。

例如:

多維數組與常量的比較運算會廣播到每一個元素,也就是說,每個元素都會與該常量進行比較運算。我們可以利用這一點來生成布爾型索引數組:

常用的比較運算符有:==, !=, >, =, <=

還可以使用波浪號 ~ 對布爾型數組取反,相當于對每個元素取反。

如果有多個條件,可以使用 & 和 | 運算符進行與運算和或運算。

6. 花式索引

花式索引(Fancy indexing)指的是利用整數數組進行索引。花式索引總是產生新的數組對象。

花式索引通過傳入列表或數組,從而以特定順序選取行子集。例如:

如果要讓選定行子集的列,按指定順序排列,可以寫成:

上面代碼中,前部分 arr[[3, 2, 0]] 實際上就是上一個示例的結果。我們就是在上一個結果的基礎上進行索引,[:, [1, 2, 3, 0]],冒號表示選取所有行,而后面的列表指定了列的排列順序。

7. 索引總結

普通高維度索引、布爾型索引與花式索引這三者之間其實有規律可循。

我們以二維數組 arr2d 為例。

7.1. 形式一

第一種索引的形式為 arr2d[i]。由于 i 只是單個序列,只會篩選行子集,因此索引的結果包含所有列。

當 i 為單個數值時,結果是對應的行視圖

當 i 為 a:b 的形式時,結果是第 a 行到第 b-1 行的 b-a 個行子集視圖;

當 i 為列表或數組時:

如果 i 為形狀與 arr2d 相同的布爾型數組,則結果為 True 所對應的元素構成的新子集(布爾型索引);

如果元素為數值,結果是原數組對應行按列表或數組指定順序排列形成的新子集(花式索引);

如果元素為布爾值,結果是 True 所對應的行構成的新子集。

7.2. 形式二

第二種索引的形式為 arr2d[i, j]。由于 i,j 包含了每一個維度(此處為2),因此將對行和列進行篩選。

當 i、j 為數值時,結果是單個元素視圖;

當 i、j 均為 a:b 的形式時,結果是 i 篩選出的行子集與 j 篩選出的列子集的公共部分視圖;

當 i、j 均為列表時:

如果元素為數值,結果等價于 zip(i, j) 中每個坐標所代表的元素構成的新子集;

如果元素為布爾值,結果等價于 zip(i, j) 中兩個坐標值均為 True 的位置所對應的元素構成的新子集。

8. 轉置和軸對換

在前面的示例中,我們使用了 reshape() 方法來重塑數組。

此外,多維數組還有 transpose 方法,用于指定軸的轉置,返回源數據的視圖。

以及 T 屬性,返回轉置(軸對換)后的數組,T 屬性本身不可修改,但若賦值給別的變量,則會生成新的數組,可進行修改。

多維數組還有一個 swapaxes 方法,用于對換兩個軸,返回源數據的視圖。

9. 元素級數組函數

我們將用于多維數組中元素級運算的函數成為通用函數(ufunc),它們作用于每一個元素,接收一個或多個標量值,并產生一個或多個標量值。

9.1. 一元ufunc

函數

說明

abs、fabs

計算整數、浮點數或復數的絕對值。對于非復數值,可以使用更快的fabs

sqrt

計算平方根。相當于 arr ** 0.5

square

計算平方。相當于 arr ** 2

exp

計算指數 e^x

log、log10、log2、log1p

底數為e、10、2的對數及log(1+x)

sign

計算正負號:1(正數)、0(零)、-1(負數)

ceil

向上取整

floor

向下取整

rint

四舍五入到最接近的整數,保留dtype

modf

將數組的小數和整數部分以兩個獨立數組的形式返回

isnan

返回一個表示“哪些值是NaN(不是數字)”的布爾型數組

isfinite、isinf

分別返回一個表示“哪些元素是有窮的”或“哪些元素是無窮的”的布爾型數組

cos、cosh、sin、sinh、tan、tanh

普通型和雙曲型三角函數

arccos、arccosh、arcsin、arcsinh、arctan、arctanh

反三角函數

logical_not

計算各元素 not x 的真值。相當于 ~arr

9.2. 二元ufunc

函數

說明

add

元素相加

subtract

第一個數組元素減去第二個數組元素

multiply

元素相乘

divide、floor_divide

除法或向下圓整除法(丟棄余數)

power

對第一個數組中的元素A,根據第二個數組中的相應元素B,計算A^B

maximum、fmax

元素級的最大值計算。fmax將忽略NaN

minimum、fmin

元素級的最小值計算。fmin將忽略NaN

mod

元素級的求模計算(除法的余數)

copysign

將第二個數組中的值的符號復制給第一個數組中的值

greater、greater_equal、less、less_equal

執行元素級的比較運算,最終產生布爾型數組。相當于中綴運算符 >, >=,

logical_and、logical_or

執行元素級的真值邏輯運算。相當于中綴運算符 & | ^

10. 視圖、副本總結

返回源數據視圖:

arr[:3](基本索引)

arr[2:5, :3](高維度索引)

返回新數組:

arr.astype('f8')(類型轉換)

arr[:3].copy()(生成副本)

arr[bools](布爾型索引)

arr[[3, 2, 0]](花式索引)

參考文獻

《利用Python進行數據分析》

總結

以上是生活随笔為你收集整理的python多维数据分析_Python 数据分析:numpy 多维数组 ndarray的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产高清自拍一区 | 东京干手机福利视频 | 秋葵视频在线 | 亚洲精品网站在线 | 精品在线免费视频 | 日韩国产在线一区 | 中文字幕色片 | 久久一级黄色片 | 在线中文字幕av | 在线看国产 | 中文字幕一区二区三区乱码不卡 | 黑鬼巨鞭白妞冒白浆 | 欧美日本另类 | 日韩亚洲欧美精品 | 精品一区二区三区不卡 | 欧美一区二区三区久久妖精 | 公交顶臀绿裙妇女配视频 | 亚洲图片自拍偷拍区 | 婷婷综合网站 | 天天躁日日躁狠狠躁免费麻豆 | 被黑人啪到哭的番号922在线 | 欧美伊人影院 | 自拍视频在线 | 爱爱激情网 | 亚洲精品三区 | 国产精品乱码一区二三区小蝌蚪 | 久草福利免费 | 和黑帮大佬的365 | 一区二区三区爱爱 | 免费性情网站 | 欧美一级色片 | 国产一二三在线观看 | 打屁股调教视频 | 国产又黄视频 | 黑人100部av解禁片 | 一区二区三区精品免费视频 | 欧美 日韩 国产 在线观看 | 一区二区三区入口 | 不卡影院一区二区 | 毛利兰被扒开腿做同人漫画 | 久久九精品 | 51av视频| 中文字幕麻豆 | 日本三级在线视频 | 亚洲最新视频 | 日本中文字幕视频在线 | 三级网站免费 | 啪视频在线观看 | 日韩五码电影 | 天天躁日日躁狠狠躁伊人 | 日本二三区 | 人人干超碰 | 四虎成人av | 国产福利在线看 | 美女黄色真播 | 国产资源av | 91爱爱爱| 全部免费毛片在线播放 | 日韩在线一二三 | 精品人妻伦一二三区久 | 女人脱下裤子让男人捅 | 日韩免费一二三区 | 秒拍福利视频 | 极品尤物一区二区 | 成人欧美一区二区三区黑人孕妇 | 麻豆changesxxx国产 | 伊人精品视频 | 午夜一区二区三区在线观看 | 成人激情电影在线观看 | 亚洲精品国产精品乱码视色 | 国产一级片中文字幕 | 又黄又爽的视频 | 亚洲无色 | 亚洲国产一二三区 | 少妇激情偷人三级 | 亚洲国产成人va在线观看天堂 | 国产精品不卡一区二区三区 | 日韩成人高清在线 | 久久深夜视频 | xxxx国产视频 | 亚洲作爱 | 精品国产伦一区二区三区 | 91免费国产在线 | a在线一区 | 国产日韩欧美久久 | 精品乱码一区二区三区四区 | 日韩激情第一页 | 日本激情视频在线观看 | 久色精品 | 日韩一区精品 | 丰满少妇一区二区三区专区 | 99自拍视频在线观看 | 春闺艳妇(h)高h产乳 | 亚洲黄网站在线观看 | 凹凸精品熟女在线观看 | 蜜桃av噜噜一区二区三区麻豆 | 亚洲丁香花色 | aa视频免费观看 | 婷婷激情影院 |