ฉันต้องการที่จะสร้างอาร์เรย์ NumPy ของความยาวองค์ประกอบของซึ่งแต่ละnv
มีอะไรที่ดีไปกว่า:
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)จะต้องจัดสรรและเริ่มต้นใช้หน่วยความจำใหม่ หากใครสามารถอธิบายสิ่งนี้ฉันจะขอบคุณมัน