In [611]: X = np.random.randint(0,9,(1000))
# Approach #1 (read-only)
In [612]: %timeit zeropad_arr_v1(X)
100000 loops, best of 3: 8.74 µs per loop
# Approach #1 (writable)
In [613]: %timeit zeropad_arr_v1(X).copy()
1000 loops, best of 3: 1.05 ms per loop
# Approach #2
In [614]: %timeit zeropad_arr_v2(X)
1000 loops, best of 3: 705 µs per loop
# @user8153's solution
In [615]: %timeit hstack_app(X)
100 loops, best of 3: 2.26 ms per loop
import numpy as np
X = np.array([1,2,3])
N = len(X)
zeros = np.zeros_like(X)
m = np.hstack((np.tile(np.hstack((X,zeros)),N-1),X)).reshape(N,-1).T
print m
方法#1:使用^{} -
注意,这将创建一个
read-only
输出。如果以后需要写入,只需在末尾附加.copy()
就可以制作一个副本。你知道吗方法#2:使用带零的串联,然后剪裁/切片-
方法1是一种基于跨步的方法,在性能上应该非常有效。你知道吗
示例运行-
运行时测试
其他可写解决方案:
尝试:
如果从上到下,再从左到右读取所需的输出矩阵,则会看到模式1、2、3、0、0、1、2、3、0、0、0、1、2、3。您可以使用该阵列轻松创建线性阵列,然后将其重塑为二维形式:
给予
相关问题 更多 >
编程相关推荐