np.r_, np.c_ ,np.meshgrid; list()與tolist();
阿新 • • 發佈:2019-02-11
1.
np.r_是按列連線兩個矩陣,就是把兩矩陣上下相加,要求列數相等。
np.c_是按行連線兩個矩陣,就是把兩矩陣左右相加,要求行數相等
np.r_[ ] : 按行來拼接,列必須相等
a = np.array([7, 8, 9]) b = np.array([1, 2, 3]) print(a.shape) print(np.r_[a,b]) c = np.array([[1,2,3],[4,5,6]]) d = np.array([[7,8,9],[10,11,12]]) print(np.r_[c,d]) e = np.array([[1,2,3],[4,5,6]]) f = np.array([[7,8,9],[10,11,12],[13,14,15]]) print(np.r_[e,f]) out: (3,) [7 8 9 1 2 3] [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]] [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12] [13 14 15]]
np.c_[ ] :按列拼接,行必須相等
a = np.array([7, 8, 9]) b = np.array([1, 2, 3]) print(a.shape) print(np.c_[a,b]) c = np.array([[1,2,3],[4,5,6]]) d = np.array([[7,8,9],[10,11,12]]) print(np.c_[c,d]) e = np.array([[1,2,3,-400],[4,5,6,-100]]) f = np.array([[7,8,9],[10,11,12]]) print(np.c_[e,f]) out: (3,) [[7 1] [8 2] [9 3]] [[ 1 2 3 7 8 9] [ 4 5 6 10 11 12]] [[ 1 2 3 -400 7 8 9] [ 4 5 6 -100 10 11 12]]
np.meshgrid : 用於產生座標網格
x = np.linspace(1,4,4) print(x) print(type(x)) y = np.linspace(1,3,3) # x按行復制3次 # y按列複製4次 a,b = np.meshgrid(x,y) print(a) print(b) print('------') print(np.c_[a.ravel(),b.ravel()]) out: [1. 2. 3. 4.] <class 'numpy.ndarray'> [[1. 2. 3. 4.] [1. 2. 3. 4.] [1. 2. 3. 4.]] [[1. 1. 1. 1.] [2. 2. 2. 2.] [3. 3. 3. 3.]] ------ [[1. 1.] [2. 1.] [3. 1.] [4. 1.] [1. 2.] [2. 2.] [3. 2.] [4. 2.] [1. 3.] [2. 3.] [3. 3.] [4. 3.]]
2
list() 與 tolist()的區別:
X=[[1,2,3,4],[5,6,7,8],[9,0,11,12]]
Y=np.array(X)
Q = list(Y)
T = Y.tolist()
print(type(Y))
print(type(Y[0]))
print(type(Y[0][0]))
print(type(Q))
print(type(Q[0]))
print(type(Q[0][0]))
print(type(T))
print(type(T[0]))
print(type(T[0][0]))
out:
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.int64'>
<class 'list'>
<class 'numpy.ndarray'>
<class 'numpy.int64'>
<class 'list'>
<class 'list'>
<class 'int'>