Numpy數(shù)組拆分的實(shí)現(xiàn)步驟
數(shù)組拆分允許我們根據(jù)指定的索引位置或者等份分割的方式將一個(gè)數(shù)組分解為多個(gè)子數(shù)組。主要使用的函數(shù)是numpy.split、numpy.hsplit和numpy.vsplit,以及它們的等價(jià)函數(shù)numpy.array_split。
np.split
numpy.split函數(shù)可以按指定的索引位置對(duì)數(shù)組進(jìn)行分割,它接受一個(gè)數(shù)組和一個(gè)分割點(diǎn)列表作為參數(shù),并返回一個(gè)包含分割后子數(shù)組的列表。
import numpy as np
# 創(chuàng)建一個(gè)一維數(shù)組
arr = np.arange(9)
print("Original array:")
print(arr)
# 按照索引位置分割數(shù)組
indices = [2, 5]
result = np.split(arr, indices)
for sub_arr in result:
print("\nSplit Sub-array:")
print(sub_arr)
# 輸出:
# Original array:
# [0 1 2 3 4 5 6 7 8]
#
# Split Sub-array:
# [0 1]
#
# Split Sub-array:
# [2 3 4]
#
# Split Sub-array:
# [5 6 7 8]
# 對(duì)于二維數(shù)組,可以通過(guò)設(shè)置axis參數(shù)來(lái)控制分割方向
arr_2d = np.arange(12).reshape(3, 4)
print("\n2D Array:")
print(arr_2d)
# 沿著行(axis=0)方向分割
result_2d_rows = np.split(arr_2d, [1], axis=0)
for row_arr in result_2d_rows:
print("\nSplit Row-subarray:")
print(row_arr)
# 沿著列(axis=1)方向分割
result_2d_cols = np.split(arr_2d, [2], axis=1)
for col_arr in result_2d_cols:
print("\nSplit Column-subarray:")
print(col_arr)輸出:
2D Array:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]Split Row-subarray:
[[0 1 2 3]]Split Row-subarray:
[[ 4 5 6 7]
[ 8 9 10 11]]Split Column-subarray:
[[0 1]
[4 5]
[8 9]]Split Column-subarray:
[[ 2 3]
[ 6 7]
[10 11]]
np.hsplit
np.hsplit 用于沿?cái)?shù)組的水平軸拆分?jǐn)?shù)組,它是 np.split 的特殊情況,適用于二維數(shù)組。
# 創(chuàng)建一個(gè)二維數(shù)組
arr_2d = np.arange(16).reshape(4, 4)
print("Original 2D array:\n", arr_2d)
# 水平拆分成 2 個(gè)子數(shù)組
hsplit_arr = np.hsplit(arr_2d, 2)
print("Horizontally split array:", hsplit_arr)輸出:
riginal 2D array:
[[ 0 1 2 3 ]
[ 4 5 6 7 ]
[ 8 9 10 11]
[12 13 14 15]]
Horizontally split array:
[array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]]),
array([[ 2, 3 ],
[ 6, 7 ],
[10, 11],
[14, 15]])]
np.vsplit
np.vsplit 用于沿?cái)?shù)組的垂直軸拆分?jǐn)?shù)組,它也是 np.split 的特殊情況。
# 垂直拆分成 2 個(gè)子數(shù)組
vsplit_arr = np.vsplit(arr_2d, 2)
print("Vertically split array:", vsplit_arr)輸出:
Vertically split array:
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]),
array([[ 8, 9, 10, 11],
[12, 13, 14, 15]])]
np.array_split
np.array_split 允許進(jìn)行不等分拆分,即子數(shù)組大小可以不一致。
# 創(chuàng)建一個(gè)數(shù)組
arr = np.arange(7)
print("Original array:", arr)
# 不等分拆分成 3 個(gè)子數(shù)組
array_split_arr = np.array_split(arr, 3)
print("Array split into 3 parts:", array_split_arr)輸出:
Original array: [0 1 2 3 4 5 6]
Array split into 3 parts:
[array([0, 1, 2]),
array([3, 4]),
array([5, 6])]
指定拆分位置
在 np.split、np.hsplit 和 np.vsplit 中,您也可以通過(guò)一個(gè)包含索引的列表來(lái)指定拆分的具體位置。
# 創(chuàng)建一個(gè)二維數(shù)組
arr_2d = np.arange(16).reshape(4, 4)
print("Original 2D array:\n", arr_2d)
# 指定位置水平拆分?jǐn)?shù)組
hsplit_arr_indices = np.hsplit(arr_2d, [3])
print("Horizontally split array at column index 3:", hsplit_arr_indices)
# 指定位置垂直拆分?jǐn)?shù)組
vsplit_arr_indices = np.vsplit(arr_2d, [1])
print("Vertically split array at row index 1:", vsplit_arr_indices)預(yù)期輸出:
Original 2D array:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
Horizontally split array at column index 3:
[array([[ 0, 1, 2],
[ 4, 5, 6],
[ 8, 9, 10],
[12, 13, 14]]),
array([[ 3],
[ 7],
[11],
[15]])]
Vertically split array at row index 1:
[array([[0, 1, 2, 3]]),
array([[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])]
到此這篇關(guān)于Numpy數(shù)組拆分的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Numpy 數(shù)組拆分內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python從函數(shù)參數(shù)類型引出元組實(shí)例分析
這篇文章主要介紹了Python從函數(shù)參數(shù)類型引出元組,結(jié)合實(shí)例形式分析了Python函數(shù)定義與使用中常見(jiàn)的三種參數(shù)類型,并簡(jiǎn)單分析了元組類型參數(shù)的使用,需要的朋友可以參考下2019-05-05
python實(shí)現(xiàn)word/excel/ppt批量轉(zhuǎn)pdf的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用python實(shí)現(xiàn)word、excel、ppt批量轉(zhuǎn)pdf文件,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考下2023-09-09
pyshp創(chuàng)建shp點(diǎn)文件的方法
今天小編就為大家分享一篇pyshp創(chuàng)建shp點(diǎn)文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
全面解析Python中的Scikit-learn強(qiáng)大工具
Scikit-learn是一個(gè)功能強(qiáng)大的Python機(jī)器學(xué)習(xí)庫(kù),提供了統(tǒng)一的接口實(shí)現(xiàn)各種機(jī)器學(xué)習(xí)算法,通過(guò)本文,你將了解如何安裝和使用Scikit-learn,涵蓋數(shù)據(jù)預(yù)處理、模型選擇、訓(xùn)練和評(píng)估等步驟,感興趣的朋友跟隨小編一起看看吧2026-01-01
盤(pán)點(diǎn)提高 Python 代碼效率的方法
本人用 Python 快兩年了,平時(shí)只是用它來(lái)寫(xiě)點(diǎn)小小的分析腳本,以方便快捷為主,也沒(méi)怎么考慮代碼效率問(wèn)題。最近想給自己升升級(jí),提高一下代碼的檔次。于是找了一堆效率相關(guān)的文章,做了些實(shí)驗(yàn),總結(jié)一下。2014-07-07
python GUI實(shí)現(xiàn)小球滿屏亂跑效果
這篇文章主要為大家詳細(xì)介紹了python GUI實(shí)現(xiàn)小球滿屏亂跑效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05

