Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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数组_Python_Arrays_Numpy - Fatal编程技术网

Python 按块添加numpy数组

Python 按块添加numpy数组,python,arrays,numpy,Python,Arrays,Numpy,我有一个由一些早期代码生成的numpy数组,需要按块添加。 例如,数组a有32个条目,应该添加,以便新数组b有4个条目,b[0]有数字0-7,b[1]有8-15等等。请参见下面的手动操作示例 import numpy as np a = np.random.rand(32) b = np.zeros(4) b[0] = np.sum(a[0:8]) b[1] = np.sum(a[8:16]) b[2] = np.sum(a[16:24]) b[3] = np.sum(a[24:32]) 现在

我有一个由一些早期代码生成的numpy数组,需要按块添加。 例如,数组
a
有32个条目,应该添加,以便新数组
b
有4个条目,
b[0]
有数字0-7,
b[1]
有8-15等等。请参见下面的手动操作示例

import numpy as np
a = np.random.rand(32)
b = np.zeros(4)
b[0] = np.sum(a[0:8])
b[1] = np.sum(a[8:16])
b[2] = np.sum(a[16:24])
b[3] = np.sum(a[24:32])

现在我知道我可以使用for循环进行求和,但我希望有更奇特的东西,因为我正在处理相当大的数组。我知道numpy伟大的切片魔法,所以我想象这样的东西可以被使用。

我会使用这样的东西:

#import random
import numpy as np
np.random.seed(11) # random.seed doesnt affect numpy computation as pointed out in the comments 

a = np.random.rand(32)
b = np.zeros(4)
a = np.reshape(a, (4,-1))
b = np.sum(a, axis=1)

我会用这样的方式:

#import random
import numpy as np
np.random.seed(11) # random.seed doesnt affect numpy computation as pointed out in the comments 

a = np.random.rand(32)
b = np.zeros(4)
a = np.reshape(a, (4,-1))
b = np.sum(a, axis=1)

-1
是什么意思?
重塑
中的一个维度可以是
-1
。在本例中,该值是从数组的长度和剩余维度推断出来的。这里有完整的文档这很有效,谢谢。唯一微小的改进是使用
np.random.seed
,因为目前您的seed不会影响numpy,每次运行都会得到不同的结果。请注意,这可能与版本有关,我记得有些库直接使用
random
其内部状态,但至少最近版本的numpy会跟踪它们自己的状态,不受其他包的影响。谢谢,将相应地更新答案。
-1
是什么意思?
重塑
中的一个维度可以是
-1
。在本例中,该值是从数组的长度和剩余维度推断出来的。这里有完整的文档这很有效,谢谢。唯一微小的改进是使用
np.random.seed
,因为目前您的seed不会影响numpy,每次运行都会得到不同的结果。请注意,这可能与版本有关,我记得有些库直接使用
random
其内部状态,但至少最新版本的numpy会跟踪它们自己的状态,不受其他软件包的影响。谢谢,我会相应地更新答案。