小白怎么開始學(xué)python-Numpy數(shù)組篇

數(shù)組是python的主角之一,以下會記錄數(shù)組的創(chuàng)建方法和應(yīng)用

Numpy——用它來進(jìn)行數(shù)組創(chuàng)建

在開始之前先來了解Numpy,NumPy(Numerical Python) 是 Python 語言的一個擴(kuò)展程序庫,支持大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學(xué)函數(shù)庫。

Numpy怎么安裝呢?
最簡單的方法是下載以下的 Python 發(fā)行版,它們包含了所有的關(guān)鍵包(包括 NumPy,SciPy,matplotlib,IPython,SymPy 以及 Python 核心自帶的其它包)
由于我們已經(jīng)安裝了 Anaconda: 免費 Python 發(fā)行版,所以自帶了Numpy,不用另外安裝了。

如果沒有安裝Numpy,可以通過以下pip語句安裝:

//安裝
! pip install numpy
//導(dǎo)入
import numpy as np 

創(chuàng)建一個 ndarray(N維數(shù)組) 只需調(diào)用 NumPy 的 array 函數(shù)即可:
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
參數(shù)說明:
object 數(shù)組或嵌套的數(shù)列
dtype 數(shù)組元素的數(shù)據(jù)類型,可選
copy 對象是否需要復(fù)制,可選
order 創(chuàng)建數(shù)組的樣式,C為行方向,F(xiàn)為列方向,A為任意方向(默認(rèn))
subok 默認(rèn)返回一個與基類類型一致的數(shù)組
ndmin 指定生成數(shù)組的最小維度

數(shù)組產(chǎn)生

數(shù)組產(chǎn)生方法:

  • 通過list
  • 通過tuple
  • 通過list of list
  • 通過list of tuple
  • 通過function
    • arange-等差數(shù)組
    • linspace-等差數(shù)組
    • logspace-等比數(shù)組
    • zeros-全0數(shù)組
    • ones-全1數(shù)組
    • random-隨機(jī)數(shù)組

自定義數(shù)組

#引入numpy
import numpy as np;
#list產(chǎn)生數(shù)組
np.array([3,2])
#list of list
np.array([[3,2]])
#二維list
np.array([3,2],ndmin=2)
#tuple
np.array((3,2))
#二維list
np.array((3,2),ndmin=2)
#二維數(shù)組
np.array([[3,2],[3,4]])
np.array([(2,3),(3,4)])
#設(shè)置數(shù)據(jù)類型
np.array([[1,2],[3,4]],dtype='float')
np.array([[1,2],[3,4]],dtype='str')

等差數(shù)組

1、使用arange函數(shù),參數(shù)為開始、結(jié)束、等差值


image.png

使用reshape函數(shù)可以設(shè)置維度,參數(shù)為行數(shù)、列數(shù)


image.png

當(dāng)列數(shù)為-1時,自動計算適配,不用我們自己計算
image.png

設(shè)置數(shù)據(jù)類型


image.png

2、使用linspace設(shè)置等差數(shù)列,參數(shù)為開始、結(jié)束,數(shù)據(jù)個數(shù)
image.png

等比數(shù)列

使用lospace設(shè)置等比數(shù)列,參數(shù)為開始、結(jié)束,數(shù)據(jù)個數(shù),等比base(默認(rèn)是10)


image.png

全0\1數(shù)組

image.png

隨機(jī)數(shù)組

image.png

需要固定隨機(jī)結(jié)果,設(shè)置seed:


image.png

隨機(jī)生成正太分布數(shù)據(jù)


image.png

隨機(jī)生成整數(shù)數(shù)據(jù)
image.png

數(shù)組屬性

ndarray.ndim 秩,即軸的數(shù)量或維度的數(shù)量
ndarray.shape 數(shù)組的維度,對于矩陣,n 行 m 列
ndarray.size 數(shù)組元素的總個數(shù),相當(dāng)于 .shape 中 n*m 的值
ndarray.dtype ndarray 對象的元素類型
ndarray.itemsize ndarray 對象中每個元素的大小,以字節(jié)為單位
ndarray.flags ndarray 對象的內(nèi)存信息
ndarray.real ndarray元素的實部
ndarray.imag ndarray 元素的虛部
ndarray.data 包含實際數(shù)組元素的緩沖區(qū),由于一般通過數(shù)組的索引獲取元素,所以通常不需要使用這個屬性。

image.png

數(shù)組轉(zhuǎn)置


image.png

數(shù)據(jù)選擇

一維數(shù)組選擇


image.png
  • 索引選擇


    image.png
  • 切片選擇:切出一部分,參數(shù):頭索引、尾索引,間隔


    image.png

多維數(shù)組選擇


image.png
  • 索引選擇


    image.png
  • 切片選擇
    注意:冒號和三個省略號作用一致


    image.png

條件選擇

image.png

數(shù)組計算

image.png
a=np.array([[1,2,3,4],[5,6,7,8]])
#求和
np.sum(a)
#按行求和
np.sum(a,axis=1)
#按列求和
np.sum(a,axis=0)
#累積求和
np.cumsum(a)
#按行累積
np.cumsum(a,axis=1)
#求均值
np.mean(a)
#按行求均值
np.mean(a,axis=1)
#求均值
np.average(a)
#加權(quán)求均值
np.average(a,axis=1,weights=[1,2,3,4])
#求中位數(shù)
np.median(a)
#按行求中位數(shù)
np.median(a,axis=1)
#求百分位數(shù)
np.percentile(a,q=[50,100])
#求方差
np.var(a)
#求標(biāo)準(zhǔn)差
np.std(a)
#求最小值
np.min(a)
#求最大值
np.max(a)
#按列求最小值
np.min(a,axis=0)
#求最大值索引
np.argmax(a)
#四舍五入
np.round([1.3,4.5,3.9])
np.floor([1.3,4.5,3.9])
np.ceil([1.3,4.5,3.9])
#排序
np.sort(a)
#倒序
-np.sort(-a)
#選擇
np.where(a>50,">50",'<=50')
#提取
np.extract(a>50,a)

數(shù)組拷貝

  • 深拷貝:copy函數(shù),修改拷貝數(shù)組,不會影響原來的數(shù)組


    image.png
  • 淺拷貝:view函數(shù),拷貝出來的數(shù)組,被修改會同時修改原來的數(shù)組


    image.png

    image.png

    image.png

數(shù)組展開和合并

  • 二維數(shù)組展開成1維數(shù)組
  • flat屬性展開
    flatten方法展開(可以有order屬性,order='C'按行展開(默認(rèn)),order='F'按列展開)


    image.png

    image.png

    image.png
  • 兩個數(shù)組合并:按行合并(hstack函數(shù),兩個數(shù)組必須維度相同)


    image.png

String基本操作

  • 大小寫


    image.png
  • 分割合并
    使用char包中的split函數(shù)分割,默認(rèn)空格分割


    image.png

    使用join函數(shù)合并


    image.png
  • 尋找替換


    image.png

    image.png

數(shù)據(jù)保存

  • 單文件保存,npx


    image.png

    image.png
  • 多文件保存,npz


    image.png

    image.png

    image.png

    image.png
  • txt保存


    image.png

    image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容