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'>