是否可以使用PyArray_NewFromDescr從一組連續的2d數組創建numpy數組對象,而不需要複製數據?從一組非連續的二維切片創建一個3d numpy數組
2
A
回答
1
您的帖子中有輕微的不一致;我假設你的標題描述了你想要的東西。看看Python API文檔,PyArray_NewFromDescr
只接受一個指向預分配內存的指針,所以答案几乎肯定不是。看來你可能會能夠巧妙地使用strides
參數來實現這一點;但即便如此,非連續的內存也必須以常規方式進行佈局。
此外,這顯然不是numpy希望你做的事情,從PyArray_CheckStrides
來看,這似乎假定一塊連續的內存塊。
1
簡答題,沒有。
Numpy希望所有的數據都能以簡單的步驟進行佈置。在遍歷數組時,爲了在維度中前進,它將一個常量(該維度的步幅大小)添加到內存中的位置。因此,除非定期佈置2-d切片(例如,更大的3-D陣列的每隔一行),numpy將需要複製數據。
如果你確實有這樣的訂單,你可以做你想要的。您需要創建一個PyArray結構,其中數據指向第一項,步長對佈局是正確的,descr也是正確的。最重要的是,您需要將基本成員設置爲另一個python對象,以便在該視圖存在時保留大量內存。
相關問題
- 1. 如何製作一個3D數組的二維numpy數組?
- 2. numpy的:切片和矢量與一維和二維數組
- 3. 在numpy中用3d數組索引一個二維數組
- 4. numpy的:由一維數組乘以一個二維數組
- 5. 一格創建一個二維數組
- 6. Numpy連接二維數組與一維數組
- 7. 構建現有二維數組中numpy的3d數組
- 8. 如何創建從給定的二維數組一維數組
- 9. python:連接兩個二維numpy數組來創建三維數組
- 10. 意外的類型從一個二維數組切片
- 11. 創建一個二維數組,由另一二維數組的acumulation的
- 12. 索引NumPy的二維數組與另一二維數組
- 13. 如何將numpy二維數組與numpy一維數組相乘?
- 14. 創建一個動態二維數組
- 15. 創建一個二維數組
- 16. 從字符串數組創建一個二維數組
- 17. 一維到二維數組在numpy
- 18. 紅寶石創建一個維數組,二維數組
- 19. 從一個整數創建numpy數組
- 20. Numpy-從二維數組
- 21. 將二維數組切片成較小的二維數組
- 22. numpy的多維數組切片
- 23. IndexError索引的二維數組與一維數組(NumPy的)
- 24. numpy數組切片,爲什麼有時是二維數組,有時是一維數組
- 25. Matlab指定3D數組的一維片
- 26. 充氣一維數組爲二維數組numpy的
- 27. 將一維數組轉換爲numpy的二維數組
- 28. 乘以numpy的二維數組與一維數組
- 29. Python的Numpy intersect1d與一維數組與二維數組
- 30. 用數組切片多維numpy陣列