ฉันต้องการที่จะสร้างอาร์เรย์ NumPy ของความยาวองค์ประกอบของซึ่งแต่ละn
v
มีอะไรที่ดีไปกว่า:
a = empty(n)
for i in range(n):
a[i] = v
ฉันรู้zeros
และones
จะทำงานกับ v = 0, 1 ฉันสามารถใช้งานv * ones(n)
ได้ แต่มันจะไม่ทำงานเมื่อจะช้ากว่ามากv
เป็นNone
และ
v * ones(n)
มันยังน่ากลัวเพราะมันใช้การคูณที่มีราคาแพง แทนที่*
ด้วย+
แม้ว่าและv + zeros(n)
กลายเป็นสิ่งที่ดีอย่างน่าประหลาดใจในบางกรณี ( stackoverflow.com/questions/5891410/… )
var = np.empty(n)
แล้วเติมด้วย 'var [:] = v' (btw np.full()
เร็วเท่านี้)
a = np.zeros(n)
a.fill(0)
นี่เป็นสิ่งที่ตรงกันข้ามกับสิ่งที่ฉันคาดไว้เนื่องจากฉันคิดว่าa=np.zeros(n)
จะต้องจัดสรรและเริ่มต้นใช้หน่วยความจำใหม่ หากใครสามารถอธิบายสิ่งนี้ฉันจะขอบคุณมัน