繁体   English   中英

将 arrays 与堆栈 numpy 连接起来

[英]Concatenate arrays with stack numpy

import numpy as np

t = np.arange(3)

for i in range(5):
  a = np.arange(3)
  np.stack((t, a))

print(t)

output = [0 1 2]

请帮忙在循环中连接 arrays for,ty!

import numpy as np

t = np.arange(3)

for i in range(5):
  a = np.arange(3)
  t = np.vstack((t, a))

print(t)

Output:

[[0 1 2]
 [0 1 2]
 [0 1 2]
 [0 1 2]
 [0 1 2]
 [0 1 2]]

请注意避免 for 循环会执行相同的任务

  1. nx,ny = 5,5快 5 倍
  2. nx,ny = 50,50快 31 倍
  3. nx,ny = 500,500快 57 倍

这里的代码:

import numpy as np
nx = 500; ny = 500

def f0():
    t = np.arange(ny)
    for i in range(nx):
      a = np.arange(ny)
      t = np.vstack((t, a))   
    return t


def f1():
    o = np.ones(nx, dtype=int)
    t = np.arange(ny)
    return np.outer(o,t)  # the outer product between 2 vectors

%timeit y0 = f0()
13.2 ms ± 1.35 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)


%timeit y1 = f1()
229 µs ± 1.95 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
import numpy as np

t = np.arange(3)

for i in range(5):
  a = np.arange(3)
  t = np.concatenate((t, a))

print(t)

Output:

[0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM