Menu
×
   ❮     
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() 方法。



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.