Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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中3D numpy数组的体积计算?_Python_Volume_Numpy Ndarray - Fatal编程技术网

python中3D numpy数组的体积计算?

python中3D numpy数组的体积计算?,python,volume,numpy-ndarray,Python,Volume,Numpy Ndarray,我有一个3D阵列 a是(512、512、133)形状的numpy数组,在某个区域中包含非零值 我想计算这个3D numpy中非零区域的体积 数组 如果我知道像素间距(0.7609、0.7609、0.5132),如何在python中找到实际的体积?试试这个: 将numpy导入为np 随机输入 #不确定您如何准确定义输入,我是这样处理的: 矩阵=np.零((1000,1000,1000)) 对于范围(1000)内的i: 矩阵[random.randint(0,999),random.randint(

我有一个3D阵列 a是(512、512、133)形状的numpy数组,在某个区域中包含非零值

我想计算这个3D numpy中非零区域的体积 数组

如果我知道像素间距(0.7609、0.7609、0.5132),如何在python中找到实际的体积?

试试这个:

将numpy导入为np
随机输入
#不确定您如何准确定义输入,我是这样处理的:
矩阵=np.零((1000,1000,1000))
对于范围(1000)内的i:
矩阵[random.randint(0,999),random.randint(0,999),random.randint(0,999)]=random.randint(0,10)
x=np。非零(矩阵)#返回所有非零元素的元组(格式为[x,Y,Z])
#最终结果——非零元素的数量——基于1个坐标(如len(X)=len(y)=len(Z)
print(len(x[0])#在我的例子中返回=>924
3D numpy阵列的体积等于非零的数量 元素乘以像素所占的体积

以获取numpy数组中的

import numpy as np
units = np.count_nonzero([[[ 0.,  0.],
                           [ 2.,  0.],
                           [ 0.,  3.]],

                          [[ 0.,  0.],
                           [ 0.,  5.],
                           [ 7.,  0.]]])
# will output 4
如果知道两个像素之间的间距s,则像素的体积计算为正方形体积(像素体积)乘以先前确定的像素量

volume = units * pow(s, 3)
更新:

由于您的间距(s1、s2、s3)在三维空间中不是等距的,因此体积将更改为

volume = units * s1 * s2 * s3
# volume = 4 * 0.7609 * 0.7609 * 0.5132

这个数量只是非零条目的数量,还是我误解了你?