一文看懂NumPy的切片中常用的冒号
生活随笔
收集整理的這篇文章主要介紹了
一文看懂NumPy的切片中常用的冒号
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? NumPy是Python語言的一個擴展程序庫。支持高階大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學(xué)函數(shù)庫。在進行大量數(shù)據(jù)計算中,NumPy會為我們提供很多的方便。最近我在學(xué)習(xí)CV方面的知識,卻老是弄混冒號在切片的作用,就寫一篇文章來加深一下印象。
一維數(shù)組
? 在一維數(shù)組中我們常見的表示方法有s[i:j] ,s[i:j:k],s[::-1]等等,下面我會依次實驗一下各種符號的作用。
import numpy as np # 生成一個0到9的np數(shù)組(注意跟數(shù)組一樣,下標(biāo)是從零開始) a = np.arange(10) # 打印數(shù)組 print("a={}".format(a)) # 取下標(biāo)為1的元素到下標(biāo)為8的元素(左閉右開) b=a[1:8] print("b={}".format(b)) # 開頭省略意味著從起始位置開始取-1代表倒數(shù)第一個元素位置(左閉右開) c=a[:-1] print("c={}".format(c)) # 開頭省略意味著從起始位置開始取-2代表倒數(shù)第二個元素位置(左閉右開) d=a[:-2] print("d={}".format(d)) # 從倒數(shù)第二個元素開始直到最后一個元素為止 e=a[-2:] print("e={}".format(e)) # a[i:j:k]表示從i開始步長為k取到j(luò)元素為止 f= a[1:8:2] print("f={}".format(f)) # s[::-1]是從最后一個元素到第一個元素反向復(fù)制一遍 g=a[::-1] print("g={}".format(g))?
輸出:
在一維數(shù)組中還是比較簡單的,“:代表取全部元素”
二維數(shù)組
? 二維數(shù)組的情況稍微復(fù)雜,因為維度增加了所以引入“,”來作為不同維度的分隔符
import numpy as npa = np.array([[1,2,3],[3,4,5],[4,5,6]]) # 打印數(shù)組 print("a={}".format(a))# 第一維全取(即行),第二位只取下標(biāo)為1的那列 b=a[:,1] print("b={}".format(b))# 第一維全取(即行),第二位從下標(biāo)為1的那列起直到結(jié)尾 c=a[:,1:] print("c={}".format(c))# 第二維全取(即列),第一維只取下標(biāo)為1的那列 d=a[1,:] print("d={}".format(d))# 第一維取下標(biāo)為一開始,第二維取到下標(biāo)為1為止 e=a[1:,:1] print("e={}".format(e))# 此處省略號可以理解為取全部元素,需要具體分析 f= a[1,...] print("f={}".format(f))輸出:
三維數(shù)組
??三維數(shù)組乃至多維數(shù)組是比較難理解的,需要多進行操作思考
import numpy as npa = np.array([[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],[[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]],[[25, 26, 27, 28], [29, 30, 31, 32], [33, 34, 35, 36]],]) # 打印數(shù)組 print("a={}".format(a)) b=a[1,2,1] print("b={}".format(b))c=a[::,1] print("c={}".format(c))d=a[1,:1,2:] print("d={}".format(d))輸出:
在這里推薦一位大佬寫的文章,十分詳細,我只是挑了其中的一小部分,想要更加深入了解的同學(xué)移步:Python二維數(shù)組與三維數(shù)組切片詳解
總結(jié)
以上是生活随笔為你收集整理的一文看懂NumPy的切片中常用的冒号的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021中国泛知识付费行业报告
- 下一篇: 支付系统设计:对账处理(二)