NumPyの配列の分割
- 前のページ NumPyの配列の結合
- 次のページ NumPyの配列の検索
拆分 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 を 3 つの 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)
上記の例では、3 つの 2-D 配列が返されます。
もう一つの例を見てみましょう、今度は 2-D 配列の各要素が 3 つの要素を含んでいます。
例
この 2-D を 3 つの 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)
上記の例では、3 つの 2-D 配列が返されます。
さらに、分割する軸を指定できます。
以下の例では、行方向(axis=1)に分割された 3 つの 2-D 配列が返されます。
例
行方向にこの 2-D を 3 つの 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 配列を行方向に 3 つの 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)
ヒント:vsplit()
および dsplit()
以下のとおり使用できます vstack()
および dstack()
類似の代替方法
- 前のページ NumPyの配列の結合
- 次のページ NumPyの配列の検索