Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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
Python Numpy使用arange修改多维数组中的每个数组_Python_Arrays_Numpy_Multidimensional Array - Fatal编程技术网

Python Numpy使用arange修改多维数组中的每个数组

Python Numpy使用arange修改多维数组中的每个数组,python,arrays,numpy,multidimensional-array,Python,Arrays,Numpy,Multidimensional Array,我有一个包含多维形状数组(2400,2)的数据集 我希望能够获取这2400行中的每一行,并将它们修改为从起点和终点(2400行中的每一行中的两个元素)开始的范围。范围总是相同的长度(在我的例子中,长度是60) 例如,如果我有这样的东西: array([[ 78, 82], [ 90, 94], [ 102, 106]]) array([[ 78, 79, 80, 81, 82], [ 90, 91, 92, 93, 94],

我有一个包含多维形状数组(2400,2)的数据集

我希望能够获取这2400行中的每一行,并将它们修改为从起点和终点(2400行中的每一行中的两个元素)开始的范围。范围总是相同的长度(在我的例子中,长度是60)

例如,如果我有这样的东西:

array([[  78,   82],
       [  90, 94],
       [  102, 106]])
array([[  78, 79, 80, 81, 82],
       [  90, 91, 92, 93, 94],
       [  102, 103, 104, 105, 106]])
我的输出应该是这样的:

array([[  78,   82],
       [  90, 94],
       [  102, 106]])
array([[  78, 79, 80, 81, 82],
       [  90, 91, 92, 93, 94],
       [  102, 103, 104, 105, 106]])
我能够做到这一点的唯一方法是使用for循环,但我试图避免在每一行中循环,因为数据集可能变得非常大


谢谢

如果第二列和第一列之间的差异始终为
4
,则可以提取第一列并向其添加
[0,1,2,3,4]
数组:

arr = np.array([[  78,   82],
                [  90, 94],
                [  102, 106]])

arr[:,:1] + np.arange(5)
Out[331]:
array([[ 78,  79,  80,  81,  82],
       [ 90,  91,  92,  93,  94],
       [102, 103, 104, 105, 106]])

如果第二列和第一列之间的差异总是
4
,则可以提取第一列并向其添加
[0,1,2,3,4]
数组:

arr = np.array([[  78,   82],
                [  90, 94],
                [  102, 106]])

arr[:,:1] + np.arange(5)
Out[331]:
array([[ 78,  79,  80,  81,  82],
       [ 90,  91,  92,  93,  94],
       [102, 103, 104, 105, 106]])

因为所有的arange都需要等长,所以我们可以沿着第一个条目创建一个arange,然后复制其他条目

例如:

x = np.array([[78, 82],
              [90, 94],
              [102, 106]])

>>> x[:, :1] + np.arange(0, 1 + x[0, 1] - x[0, 0])
# array([[ 78,  79,  80,  81],
#        [ 90,  91,  92,  93],
#        [102, 103, 104, 105]])

因为所有的arange都需要等长,所以我们可以沿着第一个条目创建一个arange,然后复制其他条目

例如:

x = np.array([[78, 82],
              [90, 94],
              [102, 106]])

>>> x[:, :1] + np.arange(0, 1 + x[0, 1] - x[0, 0])
# array([[ 78,  79,  80,  81],
#        [ 90,  91,  92,  93],
#        [102, 103, 104, 105]])