วิธีย้ายองค์ประกอบในอาร์เรย์ numpy (พร้อมตัวอย่าง)


คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้เพื่อชดเชยองค์ประกอบของอาร์เรย์ NumPy:

วิธีที่ 1: องค์ประกอบ Shift (เก็บองค์ประกอบดั้งเดิมทั้งหมดไว้)

 #shift each element two positions to the right
data_new = np. roll (data, 2)

วิธีที่ 2: องค์ประกอบ Shift (อนุญาตให้เปลี่ยนองค์ประกอบ)

 #define shifting function
def shift_elements (arr, num, fill_value):
    result = np. empty_like (arr)
    if num > 0:
        result[:num] = fill_value
        result[num:] = arr[:-num]
    elif num < 0:
        result[num:] = fill_value
        result[:num] = arr[-num:]
    else :
        result[:] = arr
    return result

#shift each element two positions to the right (replace shifted elements with zero)
data_new = shift_elements(data, 2, 0)

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ

วิธีที่ 1: องค์ประกอบ Shift (เก็บองค์ประกอบดั้งเดิมทั้งหมดไว้)

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน np.roll() เพื่อเลื่อนแต่ละองค์ประกอบของอาร์เรย์ NumPy ไปทางขวาสองตำแหน่ง:

 import numpy as np

#create NumPy array
data = np. array ([1, 2, 3, 4, 5, 6])

#shift each element two positions to the right
data_new = np. roll (data, 2)

#view new NumPy array
data_new

array([5, 6, 1, 2, 3, 4])

โปรดทราบว่าแต่ละองค์ประกอบถูกเลื่อนไปทางขวาสองตำแหน่ง และองค์ประกอบที่ส่วนท้ายของอาร์เรย์ก็ถูกย้ายไปข้างหน้า

นอกจากนี้เรายังสามารถใช้ตัวเลขติดลบในฟังก์ชัน np.roll() เพื่อเลื่อนองค์ประกอบไปทางซ้าย:

 import numpy as np

#create NumPy array
data = np. array ([1, 2, 3, 4, 5, 6])

#shift each element three positions to the left
data_new = np. roll (data, -3)

#view new NumPy array
data_new

array([4, 5, 6, 1, 2, 3])

วิธีที่ 2: องค์ประกอบ Shift (อนุญาตให้เปลี่ยนองค์ประกอบ)

นอกจากนี้เรายังสามารถกำหนดฟังก์ชันที่กำหนดเองเพื่อเปลี่ยนองค์ประกอบของอาร์เรย์ NumPy และอนุญาตให้แทนที่องค์ประกอบที่ถูกเลื่อนด้วยค่าที่แน่นอน

ตัวอย่างเช่น เราสามารถกำหนดฟังก์ชันต่อไปนี้เพื่อเลื่อนองค์ประกอบและแทนที่องค์ประกอบที่เลื่อนทั้งหมดด้วยค่า 0:

 import numpy as np

#create NumPy array
data = np. array ([1, 2, 3, 4, 5, 6])

#define custom function to shift elements
def shift_elements (arr, num, fill_value):
    result = np. empty_like (arr)
    if num > 0:
        result[:num] = fill_value
        result[num:] = arr[:-num]
    elif num < 0:
        result[num:] = fill_value
        result[:num] = arr[-num:]
    else :
        result[:] = arr
    return result

#shift each element two positions to the right and replace shifted values with zero
data_new = shift_elements(data, 2, 0)

#view new NumPy array
data_new

array([0, 0, 1, 2, 3, 4])

นอกจากนี้เรายังสามารถใช้จำนวนลบในฟังก์ชันเพื่อเลื่อนองค์ประกอบไปทางซ้าย:

 import numpy as np

#create NumPy array
data = np. array ([1, 2, 3, 4, 5, 6])

#define custom function to shift elements
def shift_elements (arr, num, fill_value):
    result = np. empty_like (arr)
    if num > 0:
        result[:num] = fill_value
        result[num:] = arr[:-num]
    elif num < 0:
        result[num:] = fill_value
        result[:num] = arr[-num:]
    else :
        result[:] = arr
    return result

#shift each element three positions to the left and replace shifted values with 50
data_new = shift_elements(data, -3, 50)

#view new NumPy array
data_new

array([ 4, 5, 6, 50, 50, 50])

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ใน NumPy:

วิธีนับการเกิดขึ้นขององค์ประกอบใน NumPy
วิธีจัดเรียงอาร์เรย์ NumPy ตามคอลัมน์
วิธีการคำนวณโหมดของอาร์เรย์ NumPy

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *