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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

numpy数组切片:一维/二维/数组

發布時間:2023/11/27 生活经验 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 numpy数组切片:一维/二维/数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • numpy數組切片操作
      • 一維數組(冒號:)
        • 1、一個參數:a[i]
        • 2、兩個參數:b=a[i:j]
        • 3、三個參數:格式b = a[i:j:s]
        • 4、例子
      • 二維數組(逗號,)
        • 取元素 X[n0,n1]
        • 切片 X[s0:e0,s1:e1]
        • 切片特殊情況 X[:e0,s1:]
        • 代碼實例
      • reference

numpy數組切片操作

列表用 [ ] 標識,支持字符,數字,字符串甚至可以包含列表(即嵌套),是 python 最通用的復合數據類型。
關于索引
左到右索引默認 0 開始,從右到左索引默認 -1 開始。

一維數組(冒號:)

通過冒號分隔切片參數 start:stop:step 來進行切片操作:

import numpy as np
a=[1,2,3.4,5]
print(a)
[ 1 2 3 4 5 ]

1、一個參數:a[i]

如 [2],將返回與該索引相對應的單個元素。

2、兩個參數:b=a[i:j]

b = a[i:j] 表示復制a[i]到a[j-1],以生成新的list對象
i缺省時默認為0,即 a[:n] 代表列表中的第一項到第n項,相當于 a[0:n]
j缺省時默認為len(alist),即a[m:] 代表列表中的第m+1項到最后一項,相當于a[m:5]
當i,j都缺省時,a[:]就相當于完整復制a

print(a[-1])     取最后一個元素結果:[5]print(a[:-1])     除了最后一個取全部結果:[ 1 2 3 4 ]print(a[1:])     取第二個到最后一個元素結果:[2 3 4 5]

3、三個參數:格式b = a[i:j:s]

這里的s表示步進,缺省為1.(-1時即翻轉讀取)
所以a[i:j:1]相當于a[i:j]

s='abcdefg'
print(s[0:4] #輸出abcd
print(s[0:4:2]) #步長為 2(間隔一個位置)來截取,輸出ac
當s<0時,i缺省時,默認為-1. j缺省時,默認為-len(a)-1
所以a[::-1]相當于 a[-1:-len(a)-1:-1],也就是從最后一個元素到第一個元素復制一遍。所以你看到一個倒序的東東。print(a[::-1])     取從后向前(相反)的元素
結果:[ 5 4 3 2 1 ]print(a[2::-1])     取從下標為2的元素**翻轉讀取**
結果:[ 3 2 1 ]

4、例子

題解:如果 l 能移動,那么 r 一定可以隨便移動,如果 l 不動,那么 r 一定不能動
那么我們現在只要考慮 l 的移動即可
考慮找到位置 k 之前的最左邊的最小的字符,如果存在,先手可以直接把 l 移過去,那么后手就沒得走了
如果不存在,那么先手顯然沒得移動
所以直接根據每個位置左邊最小的字符是否小于當前位置的字符即可判斷勝負

m='z'
for c in input():print('MAinkne'[c>m::2])m=min(m, c)

二維數組(逗號,)

X[n0,n1]是通過 numpy 庫引用二維數組或矩陣中的某一段數據集的一種寫法。
類似的,X[n0,n1,n2]表示取三維數組,取N維數組則有N個參數,N-1個逗號分隔。

取元素 X[n0,n1]

這是最基本的情況,表示取 第0維 的第 n0 個元素,繼續取 第1維 的第 n1個元素。如 X[2,2] 表示第0維第2個元素[20,21,22,23],然后取其第1維的第2個元素即 22;

切片 X[s0:e0,s1:e1]

這是最通用的切片操作,表示取 第0維 的第 s0 到 e0 個元素,繼續取 第1維 的第 s1 到 e1 個元素(左閉右開)。如 X[1:3,1:3] 表示第0維第(1:3)個元素[[10,11,12,13],[20,21,22,23]],然后取其第1維的第(1:3)個元素即 [[11,12],[21,22]];

切片特殊情況 X[:e0,s1:]

特殊情況,即左邊從0開始可以省略X[:e0,s1:e1],右邊到結尾可以省略X[s0:,s1:e1],取某一維全部元素X[:,s1:e1],事實上和Python 的 序列切片規則是一樣的。

常見的 X[:,0] 則表示 第0維取全部,第1維取0號元素;

代碼實例

import numpy as np
X = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,32,33]])
#X 是一個二維數組,維度為 01;第 0[] 表示第 0 維;第 1[] 表示第 1 維;# X[n0,n1] 表示第 0 維 取第n0 個元素 ,第 1 維取第 n1 個元素
print(X[1,0])
# X[1:3,1:3] 表示第 0 維 取 (1:3)元素 ,第 1 維取第(1:3) 個元素
print(X[1:3,1:3])# X[:n0,:n1] 表示第 0 維 取 第0 到 第n0 個元素 ,第 1 維取 第0 到 第n1 個元素
print(X[:2,:2])
# X[:,:n1] 表示第 0 維 取 全部元素 ,第 1 維取 第0 到第n1 個元素
print(X[:,:2])# X[:,0]) 表示第 0 維 取全部 元素 ,第 1 維取第 0 個元素
print(X[:,0])

輸出結果:

10
[[11 12][21 22]]
[[ 0  1][10 11]]
[[ 0  1][10 11][20 21][30 31]]
[ 0 10 20 30]

reference

https://www.runoob.com/python/python-variable-types.html
https://blog.csdn.net/Arry_Lee/article/details/83108442
https://blog.csdn.net/qq_41375609/article/details/95027651

總結

以上是生活随笔為你收集整理的numpy数组切片:一维/二维/数组的全部內容,希望文章能夠幫你解決所遇到的問題。

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