基本上,我想從折疊度小于 45 的系統中提取元素的平均數量。為此,我從存放在檔案夾中的組態檔中提取資料。然后,我計算角度(在代碼中寫為“angolo”),但實際上我不知道如何從該角度提取元素數量。特別是,我不知道如何隔離角度小于 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)
uj5u.com熱心網友回復:
我認為這就是你想要的:
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,否則為假,然后您可以用它來從原始陣列中選擇值。
或者你只需??要計數np.count_nonzero( l < 45)就能解決問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/324409.html
上一篇:訪問上月查詢
