相关疑难解决方法(0)

1D阵列的高效Numpy 2D阵列构造

我有这样一个数组:

A = array([1,2,3,4,5,6,7,8,9,10])
Run Code Online (Sandbox Code Playgroud)

我试图得到这样的数组:

B = array([[1,2,3],
          [2,3,4],
          [3,4,5],
          [4,5,6]])
Run Code Online (Sandbox Code Playgroud)

每行(固定的任意宽度)移动一个.A的数组是10k记录长,我试图在Numpy中找到一种有效的方法.目前我正在使用vstack和一个缓慢的for循环.有更快的方法吗?

编辑:

width = 3 # fixed arbitrary width
length = 10000 # length of A which I wish to use
B = A[0:length + 1]
for i in range (1, length):
    B = np.vstack((B, A[i, i + width + 1]))
Run Code Online (Sandbox Code Playgroud)

python numpy

35
推荐指数
2
解决办法
1万
查看次数

找到numpy(更快)的对角线总和

我有一些这样的boardnumpy数组:

array([[0, 0, 0, 1, 0, 0, 0, 0],
       [1, 0, 0, 0, 0, 1, 0, 1],
       [0, 0, 0, 0, 0, 0, 0, 1],
       [0, 1, 0, 1, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 1],
       [0, 0, 0, 0, 1, 0, 0, 0],
       [0, 0, 1, 0, 0, 0, 1, 0],
       [1, 0, 0, 0, 0, 1, 0, 0]])
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码来查找每个第n个对角线上从-7到8(以及它的镜像版本)的元素总和.

n = 8
rate = [b.diagonal(i).sum()
        for b in (board, board[::-1])
        for …
Run Code Online (Sandbox Code Playgroud)

python numpy sum

7
推荐指数
1
解决办法
2822
查看次数

标签 统计

numpy ×2

python ×2

sum ×1