python numpy基本操作

2021-09-07 09:59:56 字數 3750 閱讀 2536

import numpy as np

a=np.array([1

,2,3

,4])

b=np.array((5

,6,7

,8))

c=np.array([[

1,2,

3,4]

,[4,

5,6,

7],[

7,8,

9,10]

])

print

(c)array([[

1,2,

3,4]

,[4,

5,6,

7],[

7,8,

9,10]

])

a.shape #(4,)

b.shape #(4,)

c.shape #(3,4) 第0軸表示行,3表示3行,第1軸表示列,4表示4列

#通過修改shape屬性的值來修改陣列每個軸的長度

c.shape=4,

3print

(c)'''

輸出為:

array([[ 1, 2, 3],

[ 4, 4, 5],

[ 6, 7, 7],

[ 8, 9, 10]])

'''c.shape=2,

-1#設定某軸為-1時,將自動計算此軸的長度

c'''

輸出為:

array([[ 1, 2, 3, 4, 4, 5],

[ 6, 7, 7, 8, 9, 10]])

'''

d=a.reshape((2

,2))

d'''

array([[1, 2],

[3, 4]])

'''a

'''array([1, 2, 3, 4])

'''#注意 a和d共享陣列儲存空間,修改其中任意乙個另乙個也被改變a[1

]=100a

'''array([ 1, 100, 3, 4])

'''d

'''array([[ 1, 100],

[ 3, 4]])

'''

c.dtype

#dtype('int32')

af=np.array([1

,2,3

,4],dtype=

float

)af.dtype

#dtype('float64')

np.arange(0,

1,0.1)

#array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])

np.linspace(0,

1,10)

'''array([0. , 0.11111111, 0.22222222, 0.33333333, 0.44444444,

0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])

'''

np.logspace(0,

2,5)

'''array([ 1. , 3.16227766, 10. , 31.6227766 ,

100. ])

'''

注意:基數可以通過base來指定,預設是10

a=np.arange(10)

a#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])a[5

]#獲取陣列中的某乙個元素,從0開始

# 5a[3:

5]#利用切片獲取陣列的一部分,包括a[3],不包括a[5]

# array([3, 4])a[:

5]#省略開始元素,表示從a[0]開始

# array([0, 1, 2, 3, 4])a[:

-1]#從a[0]開始到最後乙個元素,不包括最後乙個元素

# array([0, 1, 2, 3, 4, 5, 6, 7, 8])a[1

:-1:

2]#2表示步長為2,

#array([1, 3, 5, 7])a[:

:-1]

#省略開頭和結尾,步長為-1,表示陣列頭尾顛倒

#array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])a[5

:1:-

2]#步長為負數,開始下標大於結束下標

#array([5, 3])

注意:通過上述方法得到的陣列是原陣列的乙個檢視,共享同乙個資料儲存空間

x=np.arange(10,

1,-1

)x#array([10, 9, 8, 7, 6, 5, 4, 3, 2])x[[

3,3,

1,8]

]#獲取xzhon 的下標為3 3 1 8的4個元素,組成乙個新的陣列

#array([7, 7, 9, 2])

​ 例如2維陣列,第0軸表示行,第1軸表示列

a=np.arange(0,

60,10)

.reshape(-1

,1)+np.arange(0,

6)a'''

array([[ 0, 1, 2, 3, 4, 5],

[10, 11, 12, 13, 14, 15],

[20, 21, 22, 23, 24, 25],

[30, 31, 32, 33, 34, 35],

[40, 41, 42, 43, 44, 45],

[50, 51, 52, 53, 54, 55]])

'''

​ 多維陣列的選取:

a[0,

3:5]

#逗號表示分隔開不同的維度,表示第0行,第3列到第5列數字(不包括第5列)

#array([3, 4])a[4

:,4:

]'''

array([[44, 45],

[54, 55]])

'''a[:,

2]#第3列的數字

#array([ 2, 12, 22, 32, 42, 52])a[2

::2,

::2]

#第3行開始,每隔2行取數,列從第一列到最後一列每隔2列取數

'''array([[20, 22, 24],

[40, 42, 44]])

'''

a[(0

,1,2

,3),

(1,2

,3,4

)]#(0,1,2,3)表示第0軸,(1,2,3,4)表示第1軸

#array([ 1, 12, 23, 34])

mask=np.array([1

,0,1

,0,0

,1],dtype=np.

bool

)a[mask,2]

#第0軸是布林陣列,表示第1,3,5行取數,第1軸表示取第3列數字

#array([ 2, 22, 52])

總結:

​ 本文總結了numpy中的基本操作,方便後序查詢使用;

python Numpy基本操作

python 幾天不用就覺得生疏,因此記錄一下 便於下次使用 import numpy as np 生成方式 np.array np.arange np.linspace 隨機數 np.random.random 2,3 np.random.randint 10,size np.random.ran...

Python Numpy安裝與基本操作

numpy numeric python 擴充套件包提供了陣列功能,以及對資料進行快速處理的函式。numpy 通常與 scipy scientific python 和 matplotlib 繪相簿 一起使用。numpy基本操作例項 pip install numpy 通過pip安裝numpy im...

python numpy相關操作

array np.array 1,2,3 2,3,4 print array print array.shape print array.size a np.array 2,3,4 1,2,3 dtype np.int print a,a.dtype,sep n a np.zeros 3,4 a1 ...