求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
NumPy 教程
1.NumPy是什么
2.NumPy下载与安装
3.NumPy ndarray对象
4.NumPy 简介
5.NumPy 入门
6.NumPy 数组索引
7.NumPy 数组裁切
8.NumPy 数据类型
9.NumPy 副本/视图
10.NumPy 数组形状
11.NumPy 数组重塑
12.NumPy 数组迭代
13.NumPy 数组连接
14.NumPy 数组拆分
15.NumPy 数组搜索
16.NumPy 数组排序
17.NumPy 数组过滤
18.NumPy 中的随机数
19.NumPy ufuncs
 

 
目录
NumPy 数组拆分
43 次浏览
3次  

拆分 NumPy 数组

拆分是连接的反向操作。

连接(Joining)是将多个数组合并为一个,拆分(Spliting)将一个数组拆分为多个。

我们使用 array_split() 分割数组,将要分割的数组和分割数传递给它。

实例

将数组分为 3 部分:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 3)

print(newarr)

注释: 返回值是一个包含三个数组的数组。

如果数组中的元素少于要求的数量,它将从末尾进行相应调整。

实例

将数组分为 4 部分:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 4)

print(newarr)

提示: 我们也有 split() 方法可用,但是当源数组中的元素较少用于拆分时,它将不会调整元素,如上例那样, array_split() 正常工作,但 split() 会失败。

拆分为数组

array_split() 方法的返回值是一个包含每个分割的数组。

如果将一个数组拆分为 3 个数组,则可以像使用任何数组元素一样从结果中访问它们:

实例

访问拆分的数组:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 3)

print(newarr[0])
print(newarr[1])
print(newarr[2])

分割二维数组

拆分二维数组时,请使用相同的语法。

使用 array_split() 方法,传入要分割的数组和想要分割的数目。

实例

把这个 2-D 拆分为三个 2-D 数组。

import numpy as np

arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])

newarr = np.array_split(arr, 3)

print(newarr)

上例返回三个 2-D 数组。

让我们看另一个例子,这次 2-D 数组中的每个元素包含 3 个元素。

实例

把这个 2-D 拆分为三个 2-D 数组

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])

newarr = np.array_split(arr, 3)

print(newarr)
                              

上例返回三个 2-D 数组。

此外,您可以指定要进行拆分的轴。

下面的例子还返回三个 2-D 数组,但它们沿行 (axis=1) 分割。

实例

沿行把这个 2-D 拆分为三个 2-D 数组。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])

newarr = np.array_split(arr, 3, axis=1)

print(newarr)

另一种解决方案是使用与 hstack() 相反的 hsplit() 。

实例

使用 hsplit() 方法将 2-D 数组沿着行分成三个 2-D 数组。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])

newarr = np.hsplit(arr, 3)

print(newarr)

您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



43 次浏览
3次