ฉันคาดว่าarray.arrayจะเร็วกว่ารายการเนื่องจากอาร์เรย์ดูเหมือนจะไม่มีกล่อง
อย่างไรก็ตามฉันได้รับผลลัพธ์ต่อไปนี้:
In [1]: import array
In [2]: L = list(range(100000000))
In [3]: A = array.array('l', range(100000000))
In [4]: %timeit sum(L)
1 loop, best of 3: 667 ms per loop
In [5]: %timeit sum(A)
1 loop, best of 3: 1.41 s per loop
In [6]: %timeit sum(L)
1 loop, best of 3: 627 ms per loop
In [7]: %timeit sum(A)
1 loop, best of 3: 1.39 s per loopอะไรคือสาเหตุของความแตกต่างดังกล่าว
arrayแพ็คเกจ หากคุณต้องการที่จะทำจำนวนเงินที่สำคัญของคณิตศาสตร์ Numpy ทำงานที่ความเร็วแสง (เช่น C) และมักจะดีกว่าการใช้งานที่ไร้เดียงสาของสิ่งที่ต้องการsum())
                arrayค่อนข้างเร็วในการแปลงสตริงจำนวนเต็ม (แทน ASCII ไบต์) เป็นstrวัตถุ กุยโด้เองก็มาด้วยวิธีนี้หลังจากแก้ปัญหาอื่น ๆ มากมายและรู้สึกประหลาดใจกับประสิทธิภาพ อย่างไรก็ตามนี่เป็นที่เดียวที่ฉันจำได้ว่ามันมีประโยชน์ numpyดีกว่ามากสำหรับการจัดการกับอาร์เรย์ แต่มันเป็นการพึ่งพาบุคคลที่สาม