16
วิธีที่ดีกว่าในการสลับสองอาร์เรย์ numpy พร้อมเพรียง
ฉันมีอาร์เรย์ numpy สองตัวที่มีรูปร่างต่างกัน แต่มีความยาวเท่ากัน (มิตินำหน้า) ฉันต้องการสับเปลี่ยนแต่ละองค์ประกอบเช่นนั้นองค์ประกอบที่เกี่ยวข้องยังคงสอดคล้องกัน - เช่นสับเปลี่ยนพวกเขาพร้อมกันด้วยความเคารพดัชนีชั้นนำของพวกเขา รหัสนี้ใช้งานได้และแสดงเป้าหมายของฉัน: def shuffle_in_unison(a, b): assert len(a) == len(b) shuffled_a = numpy.empty(a.shape, dtype=a.dtype) shuffled_b = numpy.empty(b.shape, dtype=b.dtype) permutation = numpy.random.permutation(len(a)) for old_index, new_index in enumerate(permutation): shuffled_a[new_index] = a[old_index] shuffled_b[new_index] = b[old_index] return shuffled_a, shuffled_b ตัวอย่างเช่น: >>> a = numpy.asarray([[1, 1], [2, 2], [3, …