Python之numpy學習

勿在浮沙築高臺LS發表於2017-01-31

Python中有list和array兩個資料結構

import numpy as np

#numpy包學習
x=([1,2,3,4])
print(x*2)
print (np.array(x)*2)

實驗結果如下:

[1, 2, 3, 4, 1, 2, 3, 4]
[2 4 6 8]

可以看出x是list在經過轉換以後變成陣列,list中的乘法跟array中乘法的不同。

import numpy as np

#numpy包學習
x=([1,2,3,4],[2,4,6,8])
#print(x*2)
#print (np.array(x)*2)
y=np.array(x)
print (np.shape(x))
print (np.shape(y))

結果:

(2, 4)
(2, 4)

表示list和array都是2*4
下面介紹矩陣的乘法

import numpy as np

#numpy包學習
x=([1,2,3,4],[2,4,6,8])
#print(x*2)
#print (np.array(x)*2)
#y=np.array(x)
y=([1,2],[3,4],[5,6],[7,8])
#print (np.shape(x))
#print (np.shape(y))
print(np.dot(x,y))

實驗結果:

[[ 50  60]
 [100 120]]

生成單位矩陣和零矩陣

import numpy as np

x=np.eye(3)
y=np.zeros([2,5])
print(x)
print(y)

結果如下:

[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]
[[ 0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.]]

矩陣的轉置

import numpy as np
y=np.zeros([2,5])
print(y.T)

實驗結果:

[[ 0.  0.]
 [ 0.  0.]
 [ 0.  0.]
 [ 0.  0.]
 [ 0.  0.]]

生成等差陣列

import numpy as np
y=np.linspace(1,2,5)
print(y)

實驗結果:

[ 1.    1.25  1.5   1.75  2.  ]

獲取list和array中的指定資料

import numpy as np

x=([1,2,3,4],[5,6,7,8])
y=np.array(x)
print(x[1][1])
print(x[0,1:3])

實驗結果:

6
    print(x[0,1:3])
TypeError: tuple indices must be integers, not tuple

list是不能使用x[0,1:3]獲取資料而轉成array就可以
實驗程式碼:

import numpy as np

x=([1,2,3,4],[5,6,7,8])
y=np.array(x)
print(x[1][1])
print(y[0,1:3])

實驗結果:

6
[2 3]

相關文章