python - 如何使索引/值之间具有相同长度和相似标准偏差的 2 个数组?
问题描述
要求:
我想在 python 中创建一个函数,它有2 个数组,1 比第二个大。
我希望较大的采用与较小的相同的尺寸。
但不仅要删除数组的结尾或开头,我还想保持较大数组的所选索引的类似标准偏差。
例如 :
对于大小为 10 的数组和大小为 95 的数组,大小为 95 的数组应变为大小为 10,例如
在伪中选择索引 [8, 17, 27, 36, 46, 55, 65, 74, 84, 93] -代码预期结果的示例是:
len_bigger_array=95 # example where len(bigger_array)=95
len_smaller_array=10 # example where len(smaller_array)=10
result_array=[8, 17, 27, 36, 46, 55, 65, 74, 84, 93] #index of bigger_array with similar distance between each other
len(result_array)=10 #like len_small_array
第一次尝试:
total = len_bigger_array #len_bigger_array is len(bigger_array)
wanted = len_smaller_array #len_smaller_array is len(smaller_array)
div = 0
mod = 0
result_array = []
divider = int(total/wanted)
rest= total/wanted - divider
for x in range (0, total):
div=div+1
if (div >= divider):
if (mod >= 0.95):
div=div-1
mod=0
else:
result_array.append(x)
mod=mod+rest
div=0
print(result_array, len(result_array))
这次尝试的结果:
- 因为它有效:
len_bigger_array=95
和len_smaller_array=10
result_array=[8, 17, 27, 36, 46, 55, 65, 74, 84, 93]
len(result_array)=10
len_bigger_array=1999
并且len_smaller_array=100
它也可以工作:并且len(result_array)=100
包含更大的数组索引,每个之间的距离相似- 对于
len_bigger_array=182
并且len_smaller_array=69
它不起作用:result_array
包含索引,bigger_array
每个索引之间的距离相似但len(result_array)!=len_smaller_array
- 对于
len_bigger_array=95
并且len_smaller_array=33
它不起作用:result_array
包含索引,bigger_array
每个索引之间的距离相似但len(result_array)!=len_smaller_array
第二次尝试:
import math
total = len_bigger_array
wanted = len_smaller_array
result_array = []
divider = math.ceil(total/wanted)
for x in range (0, total):
if(x % divider == 0):
result_array.append(x)
missingSlice = wanted - len(result_array)
print(missingSlice)
if (missingSlice>0):
newWanted=int(total/missingSlice)
print(newWanted)
for x in range (0, total):
if (x % newWanted ==0 and x !=0):
if x not in l:
result_array.append(x)
else:
result_array.append(x-1)
print(result_array,len(result_array))
这次尝试的结果:
- 因为它有效:
len_bigger_array=95
和len_smaller_array=10
result_array=[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
len(result_array)=10
len_bigger_array=1999
并且len_smaller_array=100
它也可以工作:并且len(result_array)=100
包含更大的数组索引,每个之间的距离相似- 对于
len_bigger_array=182
并且len_smaller_array=69
它有效:也:len(result_array)=69
并且包含更大的数组的索引,每个之间的距离相似 - 对于
len_bigger_array=95
并且len_smaller_array=33
它不起作用:result_array
包含索引,bigger_array
每个索引之间的距离相似,但len(result_array)=32
不是 33
上下文信息:
small_array 和 large_array 包含 CT 图像的切片,因此它们可以变化。
结果数组应包含更大数组的索引,这些索引之间应具有相似的标准偏差,以便比较更小数组和更大数组(具有相同起点和终点但切片数不同)之间的相似区域。
解决方案
推荐阅读
- java - java - 在将记录插入表之前如何处理java中的非空字段
- c# - 使用 StreamReader 读取文件时读取固定数量的字节
- wordpress - 可湿性粉剂 | 计算字段表单中的双端队列样式
- java - DAO 模式和服务层的模型对象
- javascript - Regular expression of decimal range 0.025 to 99.999
- azure - QnA Maker - 运行时错误:授权失败
- javascript - 如何从外部将键名从 ViewBag 传递给 JQuery
- ios - 收据数据验证信息未提供
- javascript - 正则表达式模式重复
- css - IONIC Card 布局样式似乎不居中且不等间距