โซลูชันของ JoshAdel ใช้ np.newaxis เพื่อเพิ่มมิติ ทางเลือกคือการใช้Reshape () เพื่อจัดมิติในการเตรียมตัวสำหรับการกระจายเสียง
data = np.array([[1,1,1],[2,2,2],[3,3,3]])
vector = np.array([1,2,3])
data
# array([[1, 1, 1],
# [2, 2, 2],
# [3, 3, 3]])
vector
# array([1, 2, 3])
data.shape
# (3, 3)
vector.shape
# (3,)
data / vector.reshape((3,1))
# array([[1, 1, 1],
# [1, 1, 1],
# [1, 1, 1]])
การทำ reshape () ช่วยให้มิติต่างๆจัดเรียงสำหรับการแพร่ภาพ:
data: 3 x 3
vector: 3
vector reshaped: 3 x 1
สังเกตว่าใช้ได้data/vector
แต่ไม่ได้รับคำตอบที่คุณต้องการ มันแบ่งแต่ละคอลัมน์ของarray
(แทนของแต่ละแถว ) vector
โดยองค์ประกอบที่สอดคล้องกันของแต่ละ มันเป็นสิ่งที่คุณจะได้รับถ้าคุณเปลี่ยนโฉมหน้าอย่างชัดเจนvector
ที่จะเป็นแทน1x3
3x1
data / vector
# array([[1, 0, 0],
# [2, 1, 0],
# [3, 1, 1]])
data / vector.reshape((1,3))
# array([[1, 0, 0],
# [2, 1, 0],
# [3, 1, 1]])