Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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/3/arrays/12.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中的另一个数组中的条件为true,则在数组中填充值_Python_Arrays_Numpy_For Loop_If Statement - Fatal编程技术网

如果Python中的另一个数组中的条件为true,则在数组中填充值

如果Python中的另一个数组中的条件为true,则在数组中填充值,python,arrays,numpy,for-loop,if-statement,Python,Arrays,Numpy,For Loop,If Statement,我已经创建了一个数组d: d = [[[1.60269836 1.97347391 1.76414466 1.53102548 1.35352821] [1.0153325 1.53331695 1.36105004 1.76111151 1.62595392] [1.5156144 1.77076004 1.24249056 1.94406171 1.98917422]] [[1.44790465 1.46990159 1.48156613 1.92963951 1.11459

我已经创建了一个数组d:

d = [[[1.60269836 1.97347391 1.76414466 1.53102548 1.35352821]
  [1.0153325  1.53331695 1.36105004 1.76111151 1.62595392]
  [1.5156144  1.77076004 1.24249056 1.94406171 1.98917422]]

 [[1.44790465 1.46990159 1.48156613 1.92963951 1.11459211]
  [1.10674091 1.57711027 1.85275685 1.84640848 1.34216641]
  [1.63670185 1.69894884 1.45114395 1.09750849 1.09564564]]]
其中包含最大值、最小值和平均值:

Max value of d is: 1.98917422158341

Min value of d is: 1.0153325043494292

The mean of d is: 1.5377490722289062
我还创建了一个空数组f:

f = np.empty((2,3,5))
f = [[[1.60269836 1.97347391 1.76414466 1.53102548 1.35352821]
  [1.0153325  1.53331695 1.36105004 1.76111151 1.62595392]
  [1.5156144  1.77076004 1.24249056 1.94406171 1.98917422]]

 [[1.44790465 1.46990159 1.48156613 1.92963951 1.11459211]
  [1.10674091 1.57711027 1.85275685 1.84640848 1.34216641]
  [1.63670185 1.69894884 1.45114395 1.09750849 1.09564564]]]
有了所有这些,我需要检查d中的每个值,并且:

  • 如果该d值大于d_min但小于d_平均值,则将25分配给f中的相应值
  • 如果d中的值大于d_平均值但小于d_最大值,则为f中的相应值指定75
  • 如果一个值等于d_平均值,则将50分配给f中的相应值
  • 为d中的d_min的f中的相应值指定0
  • 为d中的d_max的f中的相应值指定100
最后,f应该只有以下值:0、25、50、75和100

到目前为止,我的最佳解决方案是:

for value in d:
    if value.any() > d_min and value.any() < d_mean:
        value = 25
        value.append(f)

    if value.any() > d_mean and value.any() < d_max:
        value = 75
        value.append(f)

    if value.any() == d_mean:
        value = 50
        value.append(f)

    if value.any() == d_min:
        value = 0
        value.append(f)

    if value.any() == d_max:
        value = 100
        value.append(f)
对于d中的值:
如果value.any()>d_min和value.any()d_平均值和value.any()

我没有收到任何错误,但也没有收到我需要的结果。我刚刚开始学习python和numpy,所以我相信它会有更好的方法,但是在阅读了文档并查找了许多示例之后,我没有找到解决方案。

这就是您想要的吗

for i, value_i in enumerate(d):
    for j, value_j in enumerate(value_i):
        for index, value in enumerate(value_j):
            if value > d_min and value < d_mean:
                value = 25
                f[i][j][index] = value
        
            if value > d_mean and value < d_max:
                value = 75
                f[i][j][index] = value
        
            if value == d_mean:
                value = 50
                f[i][j][index] = value
        
            if value == d_min:
                value = 0
                f[i][j][index] = value
        
            if value == d_max:
                value = 100
                f[i][j][index] = value
对于i,枚举(d)中的值i:
对于j,枚举中的值(值i):
对于索引,枚举中的值(值_j):
如果值>d_最小值且值d_平均值且值
添加numpy标记以获得更好的答案