處理多維陣列,如何利用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 ...