สมมติว่าฉันมีอาร์เรย์a
:
a = np.array([[1,2,3], [4,5,6]])
array([[1, 2, 3],
[4, 5, 6]])
ฉันต้องการแปลงเป็นอาร์เรย์ 1D (เช่นเวกเตอร์คอลัมน์):
b = np.reshape(a, (1,np.product(a.shape)))
แต่สิ่งนี้กลับมา
array([[1, 2, 3, 4, 5, 6]])
ซึ่งไม่เหมือนกับ:
array([1, 2, 3, 4, 5, 6])
ฉันสามารถใช้องค์ประกอบแรกของอาร์เรย์นี้เพื่อแปลงเป็นอาร์เรย์ 1D ด้วยตนเอง:
b = np.reshape(a, (1,np.product(a.shape)))[0]
แต่สิ่งนี้ต้องการให้ฉันทราบว่าอาร์เรย์ดั้งเดิมมีกี่มิติ (และต่อ [0] เมื่อทำงานกับมิติข้อมูลที่สูงขึ้น)
มีวิธีที่เป็นอิสระจากมิติในการรับเวกเตอร์คอลัมน์ / แถวจาก ndarray โดยพลการหรือไม่?
ravel()
ส่งกลับมุมมอง แต่นั่นไม่ได้เป็นจริงเสมอไป มีหลายกรณีที่ravel()
ส่งคืนสำเนา </pedantic>