Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Numpy:当这些值以步长间隔时,如何从值直接指定子数组_Numpy_Variable Assignment_Numpy Ndarray_Sub Array_Numpy Slicing - Fatal编程技术网

Numpy:当这些值以步长间隔时,如何从值直接指定子数组

Numpy:当这些值以步长间隔时,如何从值直接指定子数组,numpy,variable-assignment,numpy-ndarray,sub-array,numpy-slicing,Numpy,Variable Assignment,Numpy Ndarray,Sub Array,Numpy Slicing,我有两个全局数组“tab1”和“tab2”,其尺寸分别等于21x21和17x17 我想用[7:17:2,0:7]索引的“tab1”(按[15:20,0:7]索引)块“tab2”分配块(因此在第一个数组维度的元素之间有一个步骤):我尝试使用以下语法: tab1[15:20,0:7] = tab2[7:17:2,0:7] 不幸的是,这不起作用,似乎沿着[7:17:2]的“tab2”的值只考虑15:20的“对角线”(我是指一个接一个)元素 是否有办法将“tab1”的子数组与另一个子数组“tab2”分

我有两个全局数组“
tab1
”和“
tab2
”,其尺寸分别等于
21x21
17x17

我想用
[7:17:2,0:7]
索引的“
tab1
”(按
[15:20,0:7]
索引)块“
tab2
”分配块(因此在第一个数组维度的元素之间有一个步骤):我尝试使用以下语法:

tab1[15:20,0:7] = tab2[7:17:2,0:7]
不幸的是,这不起作用,似乎沿着
[7:17:2]
的“
tab2
”的值只考虑
15:20
的“对角线”(我是指一个接一个)元素

是否有办法将“
tab1
”的子数组与另一个子数组“
tab2
”分配,该子数组由具有步长间隔值的索引组成

如果有人能发现问题所在或提出其他方法,这将非常好

更新1:事实上,从我上次的测试来看,它看起来不错,但是对于块
[15:20,15:20]
的分配也是一样的:

tab1[15:20,15:20] = tab2[7:17:2,7:17:2]  
?


答:这似乎也适用于此区块作业,抱歉

作业按我的预期进行

In [1]: arr = np.ones((20,10),int)                                                             
这两个块具有相同的形状:

In [2]: arr[15:20, 0:7].shape                                                                  
Out[2]: (5, 7)
In [3]: arr[7:17:2, 0:7].shape                                                                 
Out[3]: (5, 7)
分配一些有趣的内容,看起来是正确的:

In [4]: arr2 = np.arange(200).reshape(20,10)                                                   
In [5]: arr[15:20, 0:7] = arr2[7:17:2, 0:7]                                                    
In [6]: arr                                                                                    
Out[6]: 
array([[  1,   1,   1,   1,   1,   1,   1,   1,   1,   1],        
        ...
       [  1,   1,   1,   1,   1,   1,   1,   1,   1,   1],
       [ 70,  71,  72,  73,  74,  75,  76,   1,   1,   1],
       [ 90,  91,  92,  93,  94,  95,  96,   1,   1,   1],
       [110, 111, 112, 113, 114, 115, 116,   1,   1,   1],
       [130, 131, 132, 133, 134, 135, 136,   1,   1,   1],
       [150, 151, 152, 153, 154, 155, 156,   1,   1,   1]])

我从
arr2
中看到一个(5,7)值块,跳过像[80,100,…]这样的行。

无法复制,只适合我。建议你提供更多细节。