菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

NumPy 数组拆分


拆分 NumPy 数组

拆分是连接的逆操作。

连接是将多个数组合并为一个,而拆分是将一个数组分解为多个。

我们使用 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() 方法,传入要拆分的数组以及要进行的拆分数量。

示例

将二维数组拆分成三个二维数组。

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)
自己动手试一试 »

上面的示例返回三个二维数组。

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

示例

将二维数组拆分成三个二维数组。

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)
自己动手试一试 »

上面的示例返回三个二维数组。

此外,您可以指定要围绕哪个轴进行拆分。

下面的示例也返回三个二维数组,但它们是沿着行(axis=1)拆分的。

示例

将二维数组沿着行拆分成三个二维数组。

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)
自己动手试一试 »

另一种解决方案是使用 hsplit(),它是 hstack() 的反向操作。

示例

使用 hsplit() 方法将二维数组沿着行拆分成三个二维数组。

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)
自己动手试一试 »

注意:vstack()dstack() 类似的替代方案有 vsplit()dsplit()



×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持