1. 程式人生 > >numpy 測試 常用函式

numpy 測試 常用函式

import numpy as np
# numpy 基本屬性

array = np.array([[1,2,3],[4,5,6]])
print(array)
print('number of dim:', array.ndim)
print('shape:',array.shape)
print('size:',array.size)
[[1 2 3]
 [4 5 6]]
('number of dim:', 2)
('shape:', (2, 3))
('size:', 6)
#建立array
import numpy as np
# 沒有逗號分隔
array = np.array([[1,2,3],[4,5,6]],dtype = np.int)
print array.dtype

print np.zeros((3,4))

print np.ones((3,4),dtype = np.int16)

print np.empty((3,4))

print np.arange(10,20,2)

print np.arange(12).reshape(3,4)

print np.linspace(1,10,5)

print np.linspace(1,10,6).reshape(2,3)
int64
[[ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]]
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
[[  0.00000000e+000   4.94065646e-324   9.88131292e-324   1.48219694e-323]
 [  1.97626258e-323   2.47032823e-323   2.96439388e-323   3.45845952e-323]
 [  3.95252517e-323   4.44659081e-323   4.94065646e-323   5.43472210e-323]]
[10 12 14 16 18]
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[  1.     3.25   5.5    7.75  10.  ]
[[  1.    2.8   4.6]
 [  6.4   8.2  10. ]]
#numpy 基礎運算
import numpy as np
a = np.array([10,20,30,40])
b = np.arange(4)

print (a,b)
print a-b
print a+b
print a*b
print b**2
print 10*np.sin(a)
print b<3
print b==3


c = np.array([[1,1],
             [1,2]])
d = np.arange(4).reshape(2,2)
print c
print d
print c*d
print np.dot(c,d)
print c.dot(d)

e = np.random.random((2,4))
print e
print np.sum(e)
print np.min(e)
print np.max(e)
print np.sum(e, axis =1)
print np.min(e,axis =1)
(array([10, 20, 30, 40]), array([0, 1, 2, 3]))
[10 19 28 37]
[10 21 32 43]
[  0  20  60 120]
[0 1 4 9]
[-5.44021111  9.12945251 -9.88031624  7.4511316 ]
[ True  True  True False]
[False False False  True]
[[1 1]
 [1 2]]
[[0 1]
 [2 3]]
[[0 1]
 [2 6]]
[[2 4]
 [4 7]]
[[2 4]
 [4 7]]
[[ 0.98756464  0.41200785  0.21970142  0.43786931]
 [ 0.69348376  0.58889462  0.11398184  0.78221485]]
4.23571829385
0.113981841989
0.987564641156
[ 2.05714322  2.17857508]
[ 0.21970142  0.11398184]
# numpy 基礎運算
A = np.arange(14,2,-1).reshape(3,4)
print A
print np.argmin(A)
print np.argmax(A)
print np.mean(A)
print A.mean()
print np.average(A)
print np.median(A)
print np.cumsum(A)
print np.diff(A)
print np.nonzero(A)
print np.sort(A)
print (A.T)
print ((A.T).dot(A))
print np.clip(A,5,9)
print (np.mean(A,axis=1))
[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
11
0
8.5
8.5
8.5
8.5
[ 14  27  39  50  60  69  77  84  90  95  99 102]
[[-1 -1 -1]
 [-1 -1 -1]
 [-1 -1 -1]]
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]))
[[11 12 13 14]
 [ 7  8  9 10]
 [ 3  4  5  6]]
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]
[[332 302 272 242]
 [302 275 248 221]
 [272 248 224 200]
 [242 221 200 179]]
[[9 9 9 9]
 [9 9 8 7]
 [6 5 5 5]]
[ 12.5   8.5   4.5]
[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
11
0
8.5
8.5
8.5
8.5
[ 14  27  39  50  60  69  77  84  90  95  99 102]
[[-1 -1 -1]
 [-1 -1 -1]
 [-1 -1 -1]]
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]))
[[11 12 13 14]
 [ 7  8  9 10]
 [ 3  4  5  6]]
[[14 10  6]
 [13  9  5]
 [12  8  4]
 [11  7  3]]
[[332 302 272 242]
 [302 275 248 221]
 [272 248 224 200]
 [242 221 200 179]]
[[9 9 9 9]
 [9 9 8 7]
 [6 5 5 5]]
[ 12.5   8.5   4.5]
[ 3  4  5  6  7  8  9 10 11 12 13 14]
6
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
[11 12 13 14]
8
8
[11 12 13 14]
[ 4  8 12]
[8 9]
[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]
[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]
[ 3  4  5  6  7  8  9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14
# numpy 將array合併
import numpy as np

A = np.array([1,1,1])
B = np.array([2,2,2])

C = np.vstack((A,B)) #上下合併
print C
print A.shape, C.shape

D = np.hstack((A,B))#左右合併
print D
print A.shape, D.shape
print D.T #序列無法變成矩陣
print A[np.newaxis,:]
print A[np.newaxis,:].shape
print D[:,np.newaxis]


E = np.array([1,1,1])[:,np.newaxis]
F = np.array([2,2,2])[:,np.newaxis]
H = np.hstack((E,F))#左右合併
print H

G = np.concatenate((E,F,E,F),axis =1)
print G
[[1 1 1]
 [2 2 2]]
(3,) (2, 3)
[1 1 1 2 2 2]
(3,) (6,)
[1 1 1 2 2 2]
[[1 1 1]]
(1, 3)
[[1]
 [1]
 [1]
 [2]
 [2]
 [2]]
[[1 2]
 [1 2]
 [1 2]]
[[1 2 1 2]
 [1 2 1 2]
 [1 2 1 2]]
# array 分割
import numpy as np
A = np.arange(12).reshape(3,4)
print A

print np.split(A,2,axis=1)
print np.array_split(A,3,axis=1)

print np.vsplit(A,3)
print np.hsplit(A,2)
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2],
       [ 6],
       [10]]), array([[ 3],
       [ 7],
       [11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]
# numpy copy
import numpy as np
a = np.arange(4)
print a
b =a
c = a
d = b
print b
c = a
a[0] = 11
print a 
print b
print c
print d
print b is a
d[1:3] = [22,33]
print a

B = a.copy()
a[3] = 44
print a
print B
[0 1 2 3]
[0 1 2 3]
[11  1  2  3]
[11  1  2  3]
[11  1  2  3]
[11  1  2  3]
True
[11 22 33  3]
[11 22 33 44]
[11 22 33  3]