2021年6月28日 星期一

numpy的操作示範(待更新)

 #引入numpy套件

import numpy as np

 

#將串列轉成ndarray陣列

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


#印出陣列的形狀

print(a.shape)

#(12,)

 

#印出a的內容

print(a)

#[ 1  2  3  4  5  6  7  8  9 10 11 12]

 

#將a轉成3*4的二維陣列

a.shape=3,4


#印出a的內容

print(a)

'''

[[ 1  2  3  4]

 [ 5  6  7  8]

 [ 9 10 11 12]]

'''

 

#將a轉成2*6的二維陣列

a=a.reshape(2,6)


#印出a的內容

print(a)

'''

[[ 1  2  3  4  5  6]

 [ 7  8  9 10 11 12]]

'''


#指定第[0,5]的數字為33

a[0,5]=33

print(a)

'''

[[ 1  2  3  4  5 33]

 [ 7  8  9 10 11 12]]

'''


#指定第[1,5]的數字為66

a[1,5]=66

print(a)

'''

[[ 1  2  3  4  5 33]

 [ 7  8  9 10 11 66]]

'''

 

#印出a的最大值、最小值、中位數

print(a.max(),a.min(),np.median(a))

#66 1 7.5

 

#矩陣運算,將a的所有數字加上5後乘以2

a=(a+5)*2

 

print(a)

'''

[[ 12  14  16  18  20  76]

 [ 24  26  28  30  32 142]]

'''

 

#印出有哪些數字大於30

print(a>30)

'''

[[False False False False False  True]

 [False False False False  True  True]]

'''

 

#印出大於30的數字

print(a[a>30])

#[ 76  32 142]

 

#將大於30的數字歸零

a[a>30]=0

print(a)

 

#將a由小到大排序

a=np.sort(a)

print(a)

'''

[[ 0 12 14 16 18 20]

 [ 0  0 24 26 28 30]]

'''



#建立0到59,間隔為10的陣列,並指派到b

b=np.arange(0,60,10)

print(b)

#[ 0 10 20 30 40 50]

 

#將一維陣列改成為二維陣列

b=b.reshape(-1,1)

print(b)

'''

[[ 0]

 [10]

 [20]

 [30]

 [40]

 [50]]

'''

 

#將上方的二維陣列加上[0, 1, 2, 3, 4, 5]

b=np.arange(0,60,10).reshape(-1,1)+np.arange(0,6)

print(b)

'''

[[ 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]]

'''

 

#範例:若沒有轉成二維陣列就相加的情況

temp=np.arange(0,60,10)+np.arange(0,6)

print(temp)

#[ 0 11 22 33 44 55]

 

#選取中間(去除掉外框的部分)

print(b[1:-1,1:-1])

'''

[[11 12 13 14]

 [21 22 23 24]

 [31 32 33 34]

 [41 42 43 44]]

'''

#將中間歸零

b[1:-1,1:-1]=0

print(b)

'''

[[ 0  1  2  3  4  5]

 [10  0  0  0  0 15]

 [20  0  0  0  0 25]

 [30  0  0  0  0 35]

 [40  0  0  0  0 45]

 [50 51 52 53 54 55]]

'''


#待更新

沒有留言:

張貼留言

有興趣或有疑問的歡迎提問與交流喔!!!