Python 需要帮助标识基于公共变量分隔数组的numpy算法吗
我希望有人能对我遇到的问题有所了解。我有一个变量数组:Python 需要帮助标识基于公共变量分隔数组的numpy算法吗,python,arrays,algorithm,sorting,numpy,Python,Arrays,Algorithm,Sorting,Numpy,我希望有人能对我遇到的问题有所了解。我有一个变量数组: [3,4,7,8,12,18,20,25,30,31,38,43,46,51,58,59] 我想知道如何用一个公共的倍数/分母/你称之为什么来分割它们…假设这个数组的公共变量是13,我希望结果是n变量数,例如: [4,30,43,56] [7,20,46,59] [12,25,38,51] 有没有一种算法可以做到这一点?最接近我对你问题的理解是,数字应该按除n的余数分组。(i%n) 这将解决您的问题。根据您的要求更换阵列和编号 def
[3,4,7,8,12,18,20,25,30,31,38,43,46,51,58,59]
我想知道如何用一个公共的倍数/分母/你称之为什么来分割它们…假设这个数组的公共变量是13,我希望结果是n
变量数,例如:
[4,30,43,56]
[7,20,46,59]
[12,25,38,51]
有没有一种算法可以做到这一点?最接近我对你问题的理解是,数字应该按除n的余数分组。(i%n)
这将解决您的问题。根据您的要求更换阵列和编号
def run():
given_array = [3,4,7,8,12,18,20,25,30,31,38,43,46,51,58,59]
number = 13
final_result = []
for e in given_array:
d = e
intermediate_array = []
for f in given_array:
if e not in intermediate_array:
intermediate_array.append(e)
d = d+number
if d in given_array:
intermediate_array.append(d)
given_array.remove(d)
if intermediate_array and len(intermediate_array) > 1:
final_result.append(intermediate_array)
print final_result
if __name__ == '__main__':
run()
def run():
given_array = [3,4,7,8,12,18,20,25,30,31,38,43,46,51,58,59]
number = 13
final_result = []
for e in given_array:
d = e
intermediate_array = []
for f in given_array:
if e not in intermediate_array:
intermediate_array.append(e)
d = d+number
if d in given_array:
intermediate_array.append(d)
given_array.remove(d)
if intermediate_array and len(intermediate_array) > 1:
final_result.append(intermediate_array)
print final_result
if __name__ == '__main__':
run()