Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

NumPy Concatenate: คู่มือการรวมอาร์เรย์ NumPy

วิธีรวม (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 แล้ว!