Как я могу найти количество элементов из списка степеней в Python3?

#python-3.x #database #statistics #data-science #histogram

Вопрос:

В принципе, я хочу извлечь среднее количество элементов из системы, степень сгиба которой меньше 45. Для этого я извлекаю свои данные из файлов конфигурации, хранящихся в моих папках. Затем я вычисляю углы (записанные в коде как «анголо»), но на самом деле я не знаю, как извлечь количество элементов из этого угла. В частности, я не знаю, как выделить количество элементов, угол наклона которых меньше 45 градусов. Кто-нибудь знает функцию python3 или, может быть, скрипт для поиска этих чисел?

 import sys,os
import numpy as np
fn='listadir.txt' # <=== lista_dir
with open(fn,'r') as f:
  lines=f.readlines()
for l in lines:
os.chdir('C:\Users\simone\anaconda3\Ex_Files_Python_Statistics_EssT\'   l.strip('n'))
os.system('dir /b cnf-* > listacnf.txt')
with open('listacnf.txt','r') as f:
    linescnf=f.readlines()
    Q=np.matrix([[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]])
    cc = 1
for ll in linescnf:
    #print('ll=', ll)
    with open(ll.strip('n')) as ff:
        cnft=ff.readlines()
    cnf=cnft[1:]
    for lc in cnf:
        
        lv = lc.strip('n').split()
        #print('lc =', lc)
        
        ux = float(lv[3])
        uy = float(lv[4])
        uz = float(lv[5])
        Qxx = ux*ux
        Qxy = ux*uy
        Qxz = ux*uz
        Qyx = uy*ux
        Qyy = uy*uy
        Qyz = uy*uz
        Qzx = uz*ux
        Qzy = uz*uy
        Qzz = uz*uz
        Q  = np.matrix([[Qxx, Qxy, Qxz],[Qyx, Qyy, Qyz],[Qzx,Qzy, Qzz]])
        cc  = 1
        angolo = np.arccos(ux*uy*uz)
        #print(ux)
    #....
Q = Q/cc

# ....
os.chdir('..')
#print(l.strip('n'))
N= 1000
mediangolo = angolo.mean()
frazione = mediangolo/N
print('frazione=', mediangolo)
 

Ответ №1:

Я думаю, это то, чего ты хочешь:

 import numpy as np
l = np.array([10,20,30,40,50,60])
l[ l < 45] # returns: array([10, 20, 30, 40])
 

l < 45 вернет список такой длины, как l и True где элемент меньше 45, а в противном случае значение False, которое затем можно использовать для выбора значений из исходного массива.

Или вам просто нужно, чтобы граф np.count_nonzero( l < 45) сделал свое дело.

Комментарии:

1. Первая альтернатива была на самом деле лучшей. Метод count_nonzero только что добавил список единиц. Очень признателен

2. @Zikan Добро пожаловать! Если вас устраивает ответ, вы можете отметить его принятым!