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

NumPy Concatenate:A Guide

วิธีการเชื่อม NumPy Arrays

NumPy เป็นไลบรารี่ที่ยอดเยี่ยมสำหรับการทำงานกับอาร์เรย์ใน Python ครอบคลุมทุกอย่างตั้งแต่การสร้างไปจนถึงการจัดการอาร์เรย์ทุกขนาด ไม่น่าแปลกใจเลยที่ NumPy มาพร้อมกับยูทิลิตี้ที่คุณสามารถใช้เพื่อเชื่อมอาร์เรย์

numpy.concatenate() วิธีการรวมอาร์เรย์ตั้งแต่สองอาร์เรย์ขึ้นไปเป็นอาร์เรย์เดียว

ในคู่มือนี้ เราจะพูดถึงว่า NumPy Array คืออะไร และคุณจะเชื่อมเข้าด้วยกันได้อย่างไร เราจะอธิบายตัวอย่างบางส่วนเพื่อช่วยคุณในการเริ่มต้น เริ่มกันเลย!

โครงสร้างของอาร์เรย์

อาร์เรย์ NumPy เป็นอาร์เรย์ประเภทหนึ่งที่ทำงานร่วมกับไลบรารี NumPy ดูเหมือนอาร์เรย์อื่นๆ แต่ถูกเก็บไว้ในวัตถุ ndarray:

array([1, 2, 3])

ในการทำงานกับอาร์เรย์ NumPy เราจำเป็นต้องนำเข้าไลบรารี 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)

รหัสนี้สร้างสองอาร์เรย์ แต่ละอาร์เรย์เป็นอาร์เรย์ 2 มิติ เราได้สร้างอาร์เรย์เหล่านี้ 2d โดยใช้ reshape() วิธีที่สร้างตาราง 3 × 3 สำหรับแต่ละอาร์เรย์:

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[10 11 12]
 [13 14 15]
 [16 17 18]]

ตอนนี้เรามีสองอาร์เรย์ที่เราสามารถทำงานได้! มาต่อกันโดยใช้ concatenate() .

การต่อ NumPy

คุณสามารถเชื่อมอาร์เรย์เป็นสองแกน:ตามแถวหรือตามคอลัมน์ ทำได้โดยใช้ concatenate() กระบวนการ. วิธีการต่อเชื่อมสามารถรวม 1d, 2d, 3d, 4d และอาร์เรย์ที่มีจำนวนมิติที่สูงกว่าได้

ต่อกันตามแถว

เราจะเริ่มต้นด้วยการต่ออาร์เรย์สองอาร์เรย์ของเราทีละแถว สิ่งนี้จะจัดตำแหน่งรายการในสองอาร์เรย์ของเราทีละแถวและรวมเข้าเป็นอาร์เรย์เดียว:

final_array = np.concatenate((first_array, second_array))
print(final_array)

เราได้ระบุทูเพิลใน concatenate() การทำงาน. ทูเพิลนี้มีรายการอาร์เรย์ที่เราต้องการต่อ ไม่มีพารามิเตอร์ concatenate() ต่อกันเป็นแถว

รหัสของเราส่งคืน:

[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]
 [13 14 15]
 [16 17 18]]

อาร์เรย์ของเราถูกต่อกันด้วยแถว

ต่อตามคอลัมน์

คุณสามารถใช้วิธีการต่อกันเพื่อรวมสองอาร์เรย์ตามคอลัมน์

ในการทำเช่นนี้ เราจำเป็นต้องแนะนำพารามิเตอร์ใหม่:แกน โดยค่าเริ่มต้น ค่านี้คือ 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]]

อาร์เรย์ของเราถูกผสานโดยคอลัมน์

การเชื่อมต่ออาร์เรย์มากกว่าสองอาร์เรย์

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)

เราได้ระบุอาร์เรย์ทั้งสามของเราเป็นทูเพิลใน 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” เราได้พิมพ์ตัวแปรนี้ไปที่คอนโซลเพื่อแสดงว่าอาร์เรย์ของเราได้รับการผสานสำเร็จแล้ว

บทสรุป

NumPy concatenate() วิธีการรวมอาร์เรย์ NumPy สองรายการขึ้นไป อาร์เรย์จะเข้าร่วมในแกนแนวตั้งโดยค่าเริ่มต้น คุณสามารถเข้าร่วมอาร์เรย์ในการเข้าถึงแนวนอนโดยใช้แฟล็ก axis=1

คุณสามารถเชื่อมอาร์เรย์ 1d สองอาร์เรย์ขึ้นไปโดยใช้เมธอด vstack และ hstack concatenate() มีประสิทธิภาพมากกว่าวิธีการเหล่านี้ concatenate() ยังรองรับการต่ออาร์เรย์มิติ 2d, 3d และสูงกว่า

ตอนนี้คุณพร้อมที่จะเริ่มเชื่อม NumPy arrays เหมือนผู้เชี่ยวชาญ Python แล้ว!