Столкнулся с, казалось бы, простой проблемой. У меня есть список координат атомов в формате X, Y, Z. Я использовал numpy.linspace(), чтобы составить список «ячеек» из координат Z. Координаты Z таковы, что разница между точками после их сортировки может быть только десятичной дробью или целым числом. Я хотел бы переместиться по «ячейкам» и добавить только X, Y, Z наборов координат, которые попадают в диапазон «bin0»-«bin1», а затем «bin1-bin2». По сути, это то, что я хотел бы сделать в каком-то действительно плохом псевдокоде. У меня уже есть равномерно распределенные числа, которые я хочу использовать в качестве диапазонов «bin»
1. Find XYZ coordinate sets that fall into first 'bin'
2. Do math on them and save the value out
3. Move on to next bin.
Я знаю, что, вероятно, есть простое решение для Python, но мое понимание работы списков с диапазонами ограничено. Любые подсказки приветствуются.
РЕДАКТИРОВАТЬ * попытался добавить «SSCCE»
import numpy as np
xyz = [[2,-2,0.29],[ -2,0,1.9 ],[2,1,2.35],[2,-3,2.96],[ 2,0,4.97],[0,3,5.13],[-1,3,5.41]]
bins = [0,0.57,1.14,1.71,2.28,2.85555556, 3.42, 3.99, 4.56,5.14]
'''Now I want to add all of the xyz's with a z-value between 0 and .57 a list or somthing so that I can use them,
then I want to move on to the xyz's that fall between .57 and 1.14'''
workingXYZs = []
for x,y,z in xyz:
for i in bins:
if z > i: #but not greater than next I
#do math and move on to next interval
for
. - person Roland Smith   schedule 26.03.2013