Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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 四维阵列的方程计算_Python_Numpy_Multidimensional Array - Fatal编程技术网

Python 四维阵列的方程计算

Python 四维阵列的方程计算,python,numpy,multidimensional-array,Python,Numpy,Multidimensional Array,基本上,我有1000多个3D阵列,形状(1001001000)。所以一些相当大的数组,我需要在一些计算中使用。python和Numpy的伟大之处在于,可以非常快速地对每个元素进行计算,而不是进行交互。例如,我几乎可以立即对每个3D数组的每个索引求和。结果是一个大数组,其中包含每个数组的每个索引之和。原则上,这几乎就是我想要做的,但是,有一点问题 我需要做的是使用如下等式: 如上所述,我有大约1000个3D阵列。总的来说,这个数组的形状是(10001001001000)。对于1000个数组中的每

基本上,我有1000多个3D阵列,形状
(1001001000)
。所以一些相当大的数组,我需要在一些计算中使用。python和Numpy的伟大之处在于,可以非常快速地对每个元素进行计算,而不是进行交互。例如,我几乎可以立即对每个3D数组的每个索引求和。结果是一个大数组,其中包含每个数组的每个索引之和。原则上,这几乎就是我想要做的,但是,有一点问题

我需要做的是使用如下等式:

如上所述,我有大约1000个3D阵列。总的来说,这个数组的形状是
(10001001001000)
。对于1000个数组中的每个数组,我还有一个从1到1000的列表,对应于1000个3D数组,该列表的每个索引都包含一个
1
0
。如果它有一个
1
,那么该索引的整个3D数组应该放在方程的第一项中,如果
0
,它就放在另一项中


然而,我非常怀疑我将如何做到这一点,而不转向某种可能大大破坏计算速度的循环

您可以通过定位1和0对其进行排序。 比如:

list_ones = np.where(Array[0] == 1)
list_zeros = np.where(Array[0] == 0)
然后,
Array[list_one,:,:,::]
将包含与一对应的所有元素,
Array[list_zero,:,:,:]
将对应于与零对应的所有元素

那你就可以把

first_term = Array[list_ones,:,:,:]
second_term = Array[list_zeros,:,:,:]
并酌情计算


这对你有用吗?

试试看,如果确实太慢了,回来问一个具体的问题。所以不是一个免费的编码网站。