数据挖掘 numpy之分割矩阵

将一个数组分割(split)成几个小数组

使用hsplit你能将数组沿着它的水平轴分割,或者指定返回相同形状数组的个数,或者指定在哪些列后发生分割:

numpy.array_split(aryindices_or_sectionsaxis=0)

Split an array into multiple sub-arrays. 返回一个列表,列表元素为数组。

import numpy
a = numpy.floor(10*numpy.random.random((6, 6)))
print("a: ", a)

b = numpy.hsplit(a, 3)  # 水平轴分割, b为list,元素值为array
print("b: {},\n type b: {},\n type b[0]: {}".format(b, type(b), type(b[0])))

bb = numpy.hsplit(a, (3, 4))  # 在第三和第四列后分割
print("bb: {},\n type bb: {},\n type bb[0]: {}".format(bb, type(bb), type(bb[0])))


c = numpy.vsplit(a, 3)  # 纵向的轴分割
print(c)

d = numpy.array_split(a, 3, axis=0)  # array split允许指定沿哪个轴分割。同vsplit
print(d)

e = numpy.split(a, 3, axis=0)  # array split允许指定沿哪个轴分割。
print(e)

#  array_split allows indices_or_sections to be an integer that does not equally divide the axis.


"E:\Python 3.6.2\python.exe" F:/PycharmProjects/test.py
a:  [[ 2.  2.  4.  2.  4.  8.]
 [ 7.  6.  3.  2.  5.  3.]
 [ 3.  4.  9.  6.  1.  6.]
 [ 6.  3.  4.  0.  5.  4.]
 [ 0.  2.  6.  3.  4.  1.]
 [ 8.  6.  8.  9.  0.  9.]]
b: [array([[ 2.,  2.],
       [ 7.,  6.],
       [ 3.,  4.],
       [ 6.,  3.],
       [ 0.,  2.],
       [ 8.,  6.]]), array([[ 4.,  2.],
       [ 3.,  2.],
       [ 9.,  6.],
       [ 4.,  0.],
       [ 6.,  3.],
       [ 8.,  9.]]), array([[ 4.,  8.],
       [ 5.,  3.],
       [ 1.,  6.],
       [ 5.,  4.],
       [ 4.,  1.],
       [ 0.,  9.]])],
 type b: <class 'list'>,
 type b[0]: <class 'numpy.ndarray'>
bb: [array([[ 2.,  2.,  4.],
       [ 7.,  6.,  3.],
       [ 3.,  4.,  9.],
       [ 6.,  3.,  4.],
       [ 0.,  2.,  6.],
       [ 8.,  6.,  8.]]), array([[ 2.],
       [ 2.],
       [ 6.],
       [ 0.],
       [ 3.],
       [ 9.]]), array([[ 4.,  8.],
       [ 5.,  3.],
       [ 1.,  6.],
       [ 5.,  4.],
       [ 4.,  1.],
       [ 0.,  9.]])],
 type bb: <class 'list'>,
 type bb[0]: <class 'numpy.ndarray'>
[array([[ 2.,  2.,  4.,  2.,  4.,  8.],
       [ 7.,  6.,  3.,  2.,  5.,  3.]]), array([[ 3.,  4.,  9.,  6.,  1.,  6.],
       [ 6.,  3.,  4.,  0.,  5.,  4.]]), array([[ 0.,  2.,  6.,  3.,  4.,  1.],
       [ 8.,  6.,  8.,  9.,  0.,  9.]])]
[array([[ 2.,  2.,  4.,  2.,  4.,  8.],
       [ 7.,  6.,  3.,  2.,  5.,  3.]]), array([[ 3.,  4.,  9.,  6.,  1.,  6.],
       [ 6.,  3.,  4.,  0.,  5.,  4.]]), array([[ 0.,  2.,  6.,  3.,  4.,  1.],
       [ 8.,  6.,  8.,  9.,  0.,  9.]])]
[array([[ 2.,  2.,  4.,  2.,  4.,  8.],
       [ 7.,  6.,  3.,  2.,  5.,  3.]]), array([[ 3.,  4.,  9.,  6.,  1.,  6.],
       [ 6.,  3.,  4.,  0.,  5.,  4.]]), array([[ 0.,  2.,  6.,  3.,  4.,  1.],
       [ 8.,  6.,  8.,  9.,  0.,  9.]])]

Process finished with exit code 0

vsplit沿着纵向的轴分割,array split允许指定沿哪个轴分割。

最近事情比较多,学习怠慢了些,以后内容少一些,但不会断。

猜你喜欢

转载自my.oschina.net/gain/blog/1801851