numpy之陣列索引,組合,分割

2021-09-18 01:55:39 字數 1701 閱讀 5894

import numpy as np

#陣列索引

arr = np.arange(10)

print(arr[2])

print(arr[::2])

print(arr[-1])

#二維陣列的索引

#(1)位置索引連續

arr2 = np.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])

print(arr2)

#print(arr2[行索引值,列索引值])

print(arr2[0,1])

print(arr2[1,2:])

print(arr2[1:,:2])

#[[4 5]

[7 8]]

#(2) 位置索引不連續

print(arr2[(0,0,1,1),(0,1,3,4)]) #[1 2 7 8]   前面元組取行,後面元組取列
(3)bool值取值

mask = np.array([2,0,1],dtype = np.bool)

print(mask)

print(arr2[mask,2])

#一般不採用

mak1 = np.array([1,1,0],dtype=np.bool)

mak2 = np.array([0,1,0,1,0],dtype=np.bool)

print(arr2[mak1,mak2]) #注意 --對應取法

#陣列變換形態

1.reshape *****>shape

arr = np.arange(12)

arr2 = arr.reshape(3,4)

print(arr2)

2.資料展平:

print("展平之後的陣列",arr3)

print("陣列橫向展平",arr2.flantten())

print("陣列縱向展平",arr2.flantten('f'))

3.陣列組合:

arr1 = np.arange(12).reshape(3,4)

arr2 = 3*arr1

print(arr2)

print("橫向組合",np.hstack((arr1,arr2)))

print("縱向組合",np.vstack((arr1,arr2)))

#concatenate組合

print("橫向組合:\n",np.concatenate((arr1,arr2),axis =1 )")

print("縱向組合:\n",np.concatenate((arr1,arr2),axis = 0 ))

#陣列分割

#hsplit,vsplit,split

arr = np.arange(16).reshape(4,4)

print("橫向分割",np.hsplit(arr,2))

print(np.vsplit(arr,2))

print("橫向變化",np.split(arr,2,axis=1)) #軸是豎著的,結果橫向切少了

print("縱向變化",np.split(arr,2,axis=0)) #軸是橫著的,結果縱向切少了

numpy 陣列索引陣列

在numpy中,陣列除了可以被整數索引,還可以被陣列索引 a b 就是已陣列b的元素為索引,讀取陣列a的值 當被索引陣列a是一維陣列,b是一維或則多維陣列時,結果維度維度與索引陣列b相同。a np.array 7,8,9,10 b np.array 3,1 1,2 print a a print b...

Numpy 陣列合併

對於乙個array的合併,我們可以想到按行 按列等多種方式進行合併。import numpy as np a np.array 1 2,3 4,5 6 b np.array 6 5,4 3,2 1 print a print b print np.vstack a,b 沿著豎直方向將矩陣堆疊起來 c...

Numpy 中陣列的分割

來自 python資料分析基礎教程 numpy 學習指南 第2版 下面要介紹的陣列分割方法有 0.建立乙個陣列 a arange 9 reshape 3,3 print a 1.水平分割 下面的 將把陣列沿著水平方向分割為3個相同大小的子陣列 b hsplit a,3 print b 或者呼叫spl...