亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 3d 坐標中刪除撇號和非數字字符 - python

從 3d 坐標中刪除撇號和非數字字符 - python

神不在的星期二 2021-09-11 17:52:13
我正在嘗試讀取包含 xy 和 z 數組中的 3D 坐標的 txt 文件。但是,在打印結果時,字符串包含我不想要的撇號和其他非數字字符 '()' - 因為我將使用數據來繪制圖表。我怎樣才能刪除這些?作為旁注,我還想取第一行并將其作為新矩陣 x1,y1,z1。我已經嘗試將字符串轉換為浮點數,從實際的文本文件中刪除括號,使用 is.digit (返回 false 因為有非數字字符, () 包含源位置)和其他方法張貼在這里徒勞無功。python/編程新手 - 感謝您的幫助。代碼:x=[]y=[]z=[]data = np.genfromtxt('data0.txt', delimiter=',', dtype=float)for row in myFile:  x.append(row[0])  y.append(row[1])  z.append(row[2])print(x)print(y)print(z)`結果:['(-0.3', '-1.1', '-1.7', '-0.74', '-0.14', '-0.23', '-12.0', '-1.8', '-1.17', '-17.0', '0.43', '-0.58', '-1.58', '9.8', '-0.76', '-0.98', '-1.1'][' -1.1', '-2.45', '-4.4', '-1.77', '-0.34', '-0.57', '-28.0', '-4.5', '-2.63', '-47.0', '0.65', '-1.58', '-3.79', '23.35', '-1.5', '-2.49', '-2.8'][' 1.36)', '2.7', '5.5', '2.4', '0.24', '0.54', '32.0', '6.9', '3.25', '58.0', '-1.0', '1.94', '4.6', '-28.29', '1.35', '3.7', '3.26']期望的結果:x、y、z 值打印在沒有撇號和 '()' 括號的矩陣中。這是源文件(上傳到我的 jupyter hub):-0.3, -1.1, 1.36-1.1,-2.45,2.7-1.7,-4.4,5.5-0.74,-1.77,2.4-0.14,-0.34,0.24-0.23,-0.57,0.54-12.0,-28.0,32.0-1.8,-4.5,6.9-1.17,-2.63,3.25-17.0,-47.0,58.00.43,0.65,-1.0-0.58,-1.58,1.94-1.58,-3.79,4.69.8,23.35,-28.29-0.76,-1.5,1.35-0.98,-2.49,3.7-1.1,-2.8,3.26
查看完整描述

2 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

當我將其更改為原始程序時,它可以工作


import numpy as np

x=[]

y=[]

z=[]


data0 = np.genfromtxt('data0.txt', delimiter=',', dtype=float, usecols=np.arange(0,3))

for row in data0:

    x.append(row[0])

    y.append(row[1])

    z.append(row[2])


    print(x)

    print(y)

    print(z)

因此,在 a) 附加圖像中提供的數據文件和 b) 程序(myFile 在哪里定義?)


我創建了一個示例data0.txt文件:


-0.3,-1.1,1.36

-1.1,-2.45,2.7

-1.7,-4.4,5,5

0,0,0

注意:我已經刪除了所有前導空格,所以所有數字看起來都像一個數字。


我得到了這些結果


[-0.29999999999999999, -1.1000000000000001, -1.7, 0.0]

[-1.1000000000000001, -2.4500000000000002, -4.4000000000000004, 0.0]

[1.3600000000000001, 2.7000000000000002, 5.0, 0.0]


查看完整回答
反對 回復 2021-09-11
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

您可以遍歷每個列表,過濾掉大括號并將每個項目轉換為浮點數,因此:

float(a.replace('(','').replace(')',''))

對于列表中的每個項目a


查看完整回答
反對 回復 2021-09-11
  • 2 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號