如何利用NumPy進行索引和切片

2021-10-12 06:31:11 字數 959 閱讀 2321

處理多維陣列,如何利用numpy進行索引和切片?今天番茄加速就來跟大家講解下。

平時遇到關於numpy的bug,解決不了的,可以先去檢視api的使用說明。

理解numpy的向量化能力,這正是賦予它簡潔的重要原因之一。使用python原生api會經常寫些for,但是numpy讓它變得不再需要,numpy一切都是按照向量計算。如下計算小於3的元素置0,否則置為1:

# 使用python原生

a = [10,4,-6,3,5,1]

# 小於3的元素置為0,不小於3的元素置為1

b =

for i in a:

print(b)

使用 numpy 的where方法,語法更加簡潔,看不到for語句,符合python哲學:

# 使用numpy

na = np.array(a)

# 一行**

b = np.where(na < 3, 0, 1)

print(b)

3. 處理多維陣列,numpy的索引和切片更強大,如下 na < 3 得到布林索引,一切都按照向量化操作:

na = np.array([10,4,-6,3,5,1])

na[na < 3]

# 結果如下:

# array([-6, 1])

# 建立二維陣列

np.random.randint(1,10,size=(3,4))

c2 = np.random.randint(1,10,size=(3,4))

c2array([[3, 2, 9, 9],

[9, 5, 2, 4],

[8, 1, 2, 4]])

# 更強大簡潔的切片功能:

c2[:2,1:3]

array([[2, 9],

[5, 2]])

numpy 索引多個 numpy和pandas

numpy numpy的陣列為ndarray ndarray與python列表的不同 eg 6.7.5 8.0.1.沒有 隔開,6.0表示為6.整合了c 進行運算 numpy的目的就是讓你不寫迴圈,所以效率很高 pandas 資料結構 series dataframe 索引物件 series 一組n...

numpy 索引和切片

一 取行 1 單行 陣列 index,取第index 1行 例子import numpy as np arr1 np.arange 0,24 reshape 4,6 取第2行資料 row1 arr1 1,print row1 2 連續的多行 陣列 start end 顧頭不顧尾,也可以使用步長,不過...

NumPy 切片和索引

import numpy asnp a np.arange 10,20,1 b slice 1,5,2 d a 1 5 2 e a 2 print a print a b print d print e 結果 1011 1213 1415 1617 1819 1113 1113 1213 1415 ...