資料分析 1 numpy和list的用法對比

2021-09-24 21:01:46 字數 1942 閱讀 5263

numpy在深度學習或者資料分析中都是很常用的乙個工具庫,今天我結合自己的工作內容以及學習到的乙個api的用法,來說下numpy的用法

陣列與列表類似,是具有相同型別的多個元素構成的整體。

侷限:

優勢:numpy(numerical python的簡稱),是科學計算基礎的乙個庫,提供了大量關於科學計算的相關功能,例如,線性變換,資料統計,隨機數生成等。其提供的最核心的型別為多維陣列型別(ndarray)。

可以使用如下的方式來安裝numpy庫:

pip install numpy

根據慣例,使用numpy庫的匯入方式為:

import numpy as np

在匯入之後,我們可以通過:

np.__version__

來檢視numpyu庫的版本資訊。

import numpy as np
numpy提供了很多方式(函式)來建立陣列物件,常用的方式如下:

import numpy as np

c = np.arange(3,89,0.1)

# 建立全為1的陣列。

x = np.ones((5

,3))

# 建立與引數指定陣列形狀一致的陣列,陣列的值全為1。

y = np.ones_like(x)

# 建立全為0的陣列。

x = np.zeros((2

,3))

# 建立與引數形狀完全相同的陣列,陣列的值都為0。

y = np.zeros_like(x)

# print(y)

# 返回指定的形狀的陣列,陣列的值是尚未初始化的值。(值多少是不確定的。)

x = np.empty((3

,8))

# 建立與引數形狀完全相同的陣列,陣列的值是尚未初始化的值。

x = np.empty_like(x)

x = np.full((2

,3),

100)

# np.ones((2, 3))

# 建立與引數形狀完全相同的陣列,陣列的值使用第二個引數進行填充。

y = np.full_like(x,

200)

y

這個是毫無疑問的一般對於多維陣列和矩陣來說矩陣操作更快一些,numpy提供的是向量操作,多個值可以同時完成同一件事,而資料一般完成這種手段需要手動完成多個執行緒編寫,或者單執行緒遍歷,相對慢一些

陣列物件具有如下常用屬性:

我們可以通過陣列物件的astype函式來進行型別轉換。

我們可以通過陣列物件的reshape方法(或者np的reshape函式)來改變陣列的形狀。

說明:在python中,序列型別支援索引與切片操作,在numpy庫中,ndarray陣列也支援類似的操作。不過,二者之間既有相同點,也有不同點。

陣列物件也支援索引與切片操作,語法與python中序列型別的索引與切片相似。

當陣列是多維陣列時,可以使用array[高維, 低維]的方式按維度進行索引或切片。

陣列的切片返回的是原陣列資料的檢視(回憶:python中呢?)。如果需要複製底層的陣列元素,可以使用陣列物件的copy方法。

注意:檢視是共享底層的陣列元素,但檢視並不是賦值。

思考:通過切片,我們可以選取多個元素,但是,如果我們要選取的低維陣列(或元素)是不連續的,該怎樣做?

當要選取的元素不連續時,可以提供乙個索引陣列來選擇(或修改)對應索引位置的元素。

說明:我們可以提供乙個布林型別的陣列(a),然後通過該陣列(a)來對另外乙個陣列(b)進行索引(元素選取)。索引的原則為:如果為true,則選取對應位置的元素,否則不選取。

通過布林型別的陣列進行索引是常見且實用的操作,我們通常用來進行元素選擇(或過濾)操作。例如:

說明:

資料分析 1 numpy

from numpy import import numpy as np import numpy.random as npr import numpy.linalg as npl建立ndarrayarray 將輸入資料 列表 元組 陣列或其它序列型別 轉換為ndarray。要麼推斷出dtype,要...

numpy資料分析

2020 11 2 import array arr array.array i list range 10 i表示整型,生成序列後不能改變資料型別 多維陣列ndarray方便處理多維度運算,運算效率高 nparr np.array list range 10 修改值,浮點數取整數段 nparr 2...

資料分析 Numpy

什麼是numpy numpy這個詞 於兩個單詞 numerical和python。numpy是python中的乙個運算速度非常快的乙個數學庫,它非常重視陣列,很多的資料科學的包都是依賴於numpy的。它允許你在python中進行向量和矩陣計算,並且由於許多底層函式實際上是用c編寫的,因此你可以體驗在...