วิธีรวม (Concatenate) อาร์เรย์ NumPy
NumPy เป็นไลบรารีที่ยอดเยี่ยมสำหรับทำงานกับอาร์เรย์ใน Python มันครอบคลุมทุกอย่างจากการสร้างถึงการจัดการอาร์เรย์ทุกขนาด ไม่แปลกใจที่ NumPy มาพร้อมกับยูทิลิตี้ที่คุณสามารถใช้รวมอาร์เรย์ได้
เมธอด numpy.concatenate() รวมอาร์เรย์สองอันขึ้นไปเป็นอาร์เรย์เดียว
ในคู่มือนี้ เราจะพูดถึงว่าอาร์เรย์ NumPy คืออะไรและวิธีการรวมมัน เราจะเดินทางผ่านตัวอย่างบางส่วนเพื่อช่วยให้คุณเริ่มต้นได้ มาเริ่มกันเลย!
โครงสร้างของอาร์เรย์
อาร์เรย์ NumPy เป็นประเภทของอาร์เรย์ที่ทำงานกับไลบรารี NumPy มันดูเหมือนอาร์เรย์อื่นๆ แต่จัดเก็บอยู่ภายในออบเจ็กต์ ndarray:
array([1, 2, 3])
เพื่อทำงานกับอาร์เรย์ NumPy เราต้อง import ไลบรารี numpy:
import numpy as np
เราจะรวมอาร์เรย์สองอัน อาร์เรย์หนึ่งจะมีตัวเลขทั้งหมดระหว่าง 1 ถึง 9 (รวม) อาร์เรย์ที่สองจะมีตัวเลขทั้งหมดระหว่าง 10 ถึง 18 (รวม)
มาสร้างอาร์เรย์เหล่านี้โดยใช้เมธอด arange():
first_array = np.arange(1, 10).reshape(3, 3) second_array = np.arange(10, 19).reshape(3, 3) print(first_array) print(second_array)
โค้ดนี้สร้างอาร์เรย์สองอัน แต่ละอันเป็นอาร์เรย์ 2d เราทำให้อาร์เรย์เหล่านี้เป็น 2d โดยใช้เมธอด reshape() ซึ่งสร้างกริด 3x3 สำหรับแต่ละอาร์เรย์:
[[1 2 3] [4 5 6] [7 8 9]] [[10 11 12] [13 14 15] [16 17 18]]
ตอนนี้เรามีอาร์เรย์สองอันที่เราสามารถทำงานได้! มารวมพวกมันโดยใช้ concatenate().
การรวม NumPy (NumPy Concatenation)
คุณสามารถรวมอาร์เรย์ได้สองแกน: โดยแถว (row) หรือโดยคอลัมน์ (column) ทำได้โดยใช้เมธอด concatenate() เมธอด concatenate สามารถรวมอาร์เรย์ 1d, 2d, 3d, 4d และอาร์เรย์ที่มีมิติสูงกว่าได้
รวมโดยแถว (Concatenate by Row)
เราจะเริ่มรวมอาร์เรย์สองอันของเราตามแถว นี่จะจัดเรียงรายการในอาร์เรย์สองอันของเราตามแถวและรวมพวกมันเป็นอาร์เรย์เดียว:
final_array = np.concatenate((first_array, second_array)) print(final_array)
เราระบุ tuple ภายในฟังก์ชัน concatenate() Tuple นี้ประกอบด้วยรายการอาร์เรย์ที่เราต้องการรวม โดยไม่มีพารามิเตอร์ concatenate() จะรวมตามแถว
โค้ดของเราคืนค่า:
[[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12] [13 14 15] [16 17 18]]
อาร์เรย์ของเราถูกรวมตามแถว
รวมโดยคอลัมน์ (Concatenate by Column)
คุณสามารถใช้เมธอด concatenate เพื่อรวมอาร์เรย์สองอันตามคอลัมน์ได้
เพื่อทำเช่นนี้ เราต้องนำพารามิเตอร์ใหม่เข้ามา: axis โดยค่าเริ่มต้นคือ 0 นี่สอดคล้องกับแกน x หรือแกนแถว เราสามารถเขียนทับค่านี้และตั้งค่าเป็น 1 ได้ นี่จะรวมอาร์เรย์สองอันของเราตามคอลัมน์
มารวมอาร์เรย์สองอันของเราตามคอลัมน์:
final_array = np.concatenate((first_array, second_array), axis=1) print(final_array)
โค้ดของเราเกือบเหมือนตัวอย่างก่อนหน้า ความแตกต่างคือเราระบุพารามิเตอร์ axis=1 มา看看 ماذا يحدث เมื่อเรารันโค้ดของเรา:
[[ 1 2 3 10 11 12] [ 4 5 6 13 14 15] [ 7 8 9 16 17 18]]
อาร์เรย์ของเราถูกรวมตามคอลัมน์
การรวมมากกว่าสองอาร์เรย์ (Concatenating More Than Two Arrays)
เมธอด concatenate() สามารถรวมอาร์เรย์ได้จำนวนเท่าไหร่ก็ได้ มาลองรวมสามอาร์เรย์บนแกนแนวนอน อาร์เรย์ที่เราจะทำงานประกอบด้วยตัวเลขทั้งหมดในช่วง:
- 1 ถึง 9 (รวม)
- 10 ถึง 18 (รวม)
- 19 ถึง 27 (รวม)
มากำหนดอาร์เรย์ของเราใน Python:
first_array = np.arange(1, 10).reshape(3, 3) second_array = np.arange(10, 19).reshape(3, 3) third_array = np.arange(19, 28).reshape(3, 3)
ต่อไป เราสามารถใช้ concatenate เพื่อรวมพวกมันเข้าด้วยกัน:
final_array = np.concatenate((first_array, second_array, third_array), axis=1) print(final_array)
เราระบุอาร์เรย์สามอันของเราเป็น tuple ในเมธอด concatenate() เมื่อรวมกัน อาร์เรย์เหล่านี้สอดคล้องกับตัวเลขทั้งหมดระหว่าง 1 ถึง 27
มารันโปรแกรมของเรา:
[[ 1 2 3 10 11 12 19 20 21] [ 4 5 6 13 14 15 22 23 24] [ 7 8 9 16 17 18 25 26 27]]
อาร์เรย์สามอันของเราตอนนี้ถูกกำหนดให้กับตัวแปร "final_array" เราพิมพ์ตัวแปรนี้ไปยังคอนโซลเพื่อแสดงว่าอาร์เรย์ของเราถูกรวมสำเร็จแล้ว
สรุป
เมธอด concatenate() ของ NumPy รวมอาร์เรย์ NumPy สองอันขึ้นไป อาร์เรย์ถูกรวมบนแกนแนวตั้งโดยค่าเริ่มต้น คุณสามารถรวมอาร์เรย์บนแกนแนวนอนโดยใช้แฟล็ก axis=1
คุณสามารถรวมอาร์เรย์ 1d สองอันขึ้นไปโดยใช้เมธอด vstack และ hstack concatenate() มีประสิทธิภาพมากกว่าวิธีเหล่านี้ concatenate() ยังรองรับการรวมอาร์เรย์ 2d, 3d และอาร์เรย์มิติสูงกว่า
ตอนนี้คุณพร้อมที่จะเริ่มรวมอาร์เรย์ NumPy อย่างมืออาชีพ Python แล้ว!