วิธีแก้ไข: อาร์เรย์อินพุตทั้งหมดต้องมีจำนวนมิติเท่ากัน


ข้อผิดพลาดที่คุณอาจพบเมื่อใช้ NumPy คือ:

 ValueError : all the input arrays must have same number of dimensions

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามเชื่อมอาร์เรย์ NumPy สองตัวที่มีมิติต่างกัน

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

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเรามีอาร์เรย์ NumPy สองตัวต่อไปนี้:

 import numpy as np

#create first array
array1 = np. array ([[1, 2], [3, 4], [5,6], [7,8]])

print (array1) 

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

#create second array 
array2 = np. array ([9,10,11,12])

print (array2)

[9 10 11 12]

ตอนนี้ สมมติว่าเราลองใช้ฟังก์ชัน concatenate() เพื่อรวมอาร์เรย์ทั้งสองเป็นอาร์เรย์เดียว:

 #attempt to concatenate the two arrays
n.p. concatenate ([array1, array2])

ValueError : all the input arrays must have same number of dimensions, but the array at
index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)

เราได้รับ ValueError เนื่องจากอาร์เรย์ทั้งสองมีขนาดต่างกัน

วิธีการแก้ไขข้อผิดพลาด

เราสามารถใช้สองวิธีเพื่อแก้ไขข้อผิดพลาดนี้

วิธีที่ 1: ใช้ np.column_stack

วิธีหนึ่งในการเชื่อมตารางทั้งสองเข้าด้วยกันโดยหลีกเลี่ยงข้อผิดพลาดคือการใช้ฟังก์ชัน column_stack() ดังต่อไปนี้:

 n.p. column_stack ((array1, array2))

array([[ 1, 2, 9],
       [3, 4, 10],
       [5, 6, 11],
       [7, 8, 12]])

โปรดทราบว่าเราสามารถเชื่อมต่ออาร์เรย์ทั้งสองเข้าด้วยกันได้สำเร็จโดยไม่มีข้อผิดพลาด

วิธีที่ 2: ใช้ np.c_

นอกจากนี้เรายังสามารถเชื่อมตารางทั้งสองเข้าด้วยกันในขณะที่หลีกเลี่ยงข้อผิดพลาดโดยใช้ฟังก์ชัน np.c_ ดังนี้

 n.p. c_ [array1, array2]

array([[ 1, 2, 9],
       [3, 4, 10],
       [5, 6, 11],
       [7, 8, 12]])

โปรดทราบว่าฟังก์ชันนี้จะส่งกลับผลลัพธ์เดียวกันกับวิธีก่อนหน้าทุกประการ

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:

วิธีแก้ไข KeyError ใน Pandas
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int
วิธีแก้ไข: ValueError: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้

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

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