为了账号安全,请及时绑定邮箱和手机立即绑定

从 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 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号