将一个数组分割(split)成几个小数组
使用hsplit你能将数组沿着它的水平轴分割,或者指定返回相同形状数组的个数,或者指定在哪些列后发生分割:
numpy.array_split(ary, indices_or_sections, axis=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
允许指定沿哪个轴分割。
最近事情比较多,学习怠慢了些,以后内容少一些,但不会断。
所有评论(0)