Numpy速成手册(二)

说明:个人学习记录,仅供参考。
操作系统:window10 x64
IDE:Pycharm 2017.2.2
Python版本:3.6.2

接上篇

1、矩阵按行、按列拼接

import numpy as np

a = np.floor(10 * np.random.random((2, 2)))
'''
[[ 1.  1.]
 [ 6.  3.]]
'''
print(a)

b = np.floor(10 * np.random.random((2, 2)))
'''
[[ 3.  7.]
 [ 7.  0.]]
'''
print(b)

# 按行拼接,也即竖着拼接,把b放在a的下面
'''
[[ 1.  1.]
 [ 6.  3.]
 [ 3.  7.]
 [ 7.  0.]]
'''
print(np.vstack((a, b)))

# 按列拼接,也即横着拼接,把b放在a的后面
'''
[[ 1.  1.  3.  7.]
 [ 6.  3.  7.  0.]]
'''
print(np.hstack((a, b)))

2、横方向竖着分割

import numpy as np

a = np.floor(10 * np.random.random((2, 12)))

'''
[[ 5.  3.  5.  4.  5.  7.  4.  1.  0.  9.  4.  0.]
 [ 9.  8.  5.  2.  4.  5.  4.  3.  8.  0.  7.  1.]]
'''
print(a)

# 横方向分割,a为要分割的矩阵,3表示分割为3份,对应hstack方法。
# hstack:将下面的拿到后面  hsplit:将后面的拿到下面
'''
[array([[ 5.,  3.,  5.,  4.],
       [ 9.,  8.,  5.,  2.]]), array([[ 5.,  7.,  4.,  1.],
       [ 4.,  5.,  4.,  3.]]), array([[ 0.,  9.,  4.,  0.],
       [ 8.,  0.,  7.,  1.]])]
'''
print(np.hsplit(a, 3))

# 在第三列后面切一下,在第四列后面切一下,两刀分三块
'''
[array([[ 5.,  3.,  5.],
       [ 9.,  8.,  5.]]), array([[ 4.],
       [ 2.]]), array([[ 5.,  7.,  4.,  1.,  0.,  9.,  4.,  0.],
       [ 4.,  5.,  4.,  3.,  8.,  0.,  7.,  1.]])]
'''
print(np.hsplit(a, (3, 4)))

3、竖方向横着分割

import numpy as np

a = np.floor(10 * np.random.random((12, 2)))

'''
[[ 8.  8.]
 [ 9.  2.]
 [ 3.  0.]
 [ 5.  1.]
 [ 7.  3.]
 [ 7.  4.]
 [ 5.  1.]
 [ 2.  9.]
 [ 1.  3.]
 [ 1.  3.]
 [ 2.  6.]
 [ 9.  3.]]
'''
print(a)

# 竖方向横着分割,a为要分割的矩阵,3表示分割为3份。
'''
[array([[ 8.,  8.],
       [ 9.,  2.],
       [ 3.,  0.],
       [ 5.,  1.]]), array([[ 7.,  3.],
       [ 7.,  4.],
       [ 5.,  1.],
       [ 2.,  9.]]), array([[ 1.,  3.],
       [ 1.,  3.],
       [ 2.,  6.],
       [ 9.,  3.]])]
'''
print(np.vsplit(a, 3))


# 在第三行后面切一刀,在第四行后面切一刀,两刀切成3块
'''
[array([[ 8.,  8.],
       [ 9.,  2.],
       [ 3.,  0.]]), array([[ 5.,  1.]]), array([[ 7.,  3.],
       [ 7.,  4.],
       [ 5.,  1.],
       [ 2.,  9.],
       [ 1.,  3.],
       [ 1.,  3.],
       [ 2.,  6.],
       [ 9.,  3.]])]
'''
print(np.vsplit(a, (3, 4)))

这个横着切、竖着切,就跟切水果一样,可以好好体会一下,别弄混了。

4、查找并修改矩阵特定元素

import numpy as np

a = np.array(([3, 2, 1], [2, 5, 7], [4, 7, 8]))
# 查找到值为2 的元素,并将所有符合条件的元素值置为0
a[a == 2] = 0
'''
[[3 0 1]
 [0 5 7]
 [4 7 8]]
'''
print(a)

你可能感兴趣的:(Numpy速成手册(二))