8
A
回答
23
我相信這是你想要vstack
p=array_2
q=array_2
p=numpy.vstack([p,q])
13
一的學習實驗的最佳方式,但我要說你想np.vstack
雖然有做同樣的事情的其他方式:
a = np.ones((20,100,3))
b = np.vstack((a,a))
print b.shape # (40,100,3)
或
b = np.concatenate((a,a),axis=0)
編輯
正如一個音符,我的機器在OP的問題大小的數組,我發現np.concatenate
大約爲2x比np.vstack
In [172]: a = np.random.normal(size=(20,100,3))
In [173]: c = np.random.normal(size=(20,100,3))
In [174]: %timeit b = np.concatenate((a,c),axis=0)
100000 loops, best of 3: 13.3 us per loop
In [175]: %timeit b = np.vstack((a,c))
10000 loops, best of 3: 26.1 us per loop
9
快可能是值得一提的
np.concatenate((a1, a2, ...), axis=0)
是一般形式,vstack和hstack是特定情況。我發現最簡單的方法就是知道我想堆疊哪個維度,並將其作爲np.concatenate的參數提供。
3
順便說一句,還有r_
:
>>> from scipy import *
>>> a = rand(20,100,3)
>>> b = rand(20,100,3)
>>> a.shape
(20, 100, 3)
>>> b.shape
(20, 100, 3)
>>> r_[a,b].shape
(40, 100, 3)
>>> (r_[a,b] == vstack([a,b])).all()
True
4
我試圖R_和vstack和結果之間的一個小Benchmark是很有意思:
import numpy as np
NCOLS = 10
NROWS = 2
NMATRICES = 10000
def mergeR(matrices):
result = np.zeros([0, NCOLS])
for m in matrices:
result = np.r_[ result, m]
def mergeVstack(matrices):
result = np.vstack(matrices)
def main():
matrices = tuple(np.random.random([NROWS, NCOLS]) for i in xrange(NMATRICES))
mergeR(matrices)
mergeVstack(matrices)
return 0
if __name__ == '__main__':
main()
然後我跑探查:
python -m cProfile -s cumulative np_merge_benchmark.py
和結果:
ncalls tottime percall cumtime percall filename:lineno(function)
...
1 0.579 0.579 4.139 4.139 np_merge_benchmark.py:21(mergeR)
...
1 0.000 0.000 0.054 0.054 np_merge_benchmark.py:27(mergeVstack)
所以vstack的方式是77倍快!
相關問題
- 1. numpy:按組的聚合4D陣列
- 2. 組合的條件:numpy的陣列
- 3. 在numpy中組合矩陣
- 4. 聚合numpy蒙面陣列
- 5. 合併多個numpy陣列
- 6. NumPy的組陣列存儲
- 7. 結合numpy陣列和重塑列表
- 8. 合併兩列在numpy的陣列
- 9. 陣列組合的陣列
- 10. 陣列矩陣numpy
- 11. 混合類型的NumPy數組/矩陣
- 12. 組合兩個numpy的矩陣
- 13. 拼合3 d numpy的陣列
- 14. numpy的:拼合的2 d陣列
- 15. 合併numpy的陣列從環
- 16. 結合numpy的陣列循環
- 17. 結合numpy陣列和掩模
- 18. numpy的:陣列
- 19. 列組合矩陣
- 20. Fortran陣列組合
- 21. Matlab組合陣列
- 22. D3 - 組合陣列
- 23. Powershell - 組合陣列
- 24. 最有效的方法來組合和分離numpy陣列
- 25. 組合多個陣列numpy的成一個
- 26. numpy的追加數組陣列
- 27. 用數組切片多維numpy陣列
- 28. numpy三元組陣列到RGB圖像
- 29. numpy數組到排列矩陣
- 30. 數組numpy的陣列調整
不確定爲什麼我第一次訪問該頁面時沒有顯示您的答案。 +1用於首先推薦vstack。 – JoshAdel
請注意,文檔建議現在使用'stack'或'concatenate',並且vstack僅支持向後兼容性,請參閱:https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/ numpy.vstack.html – NOhs