use*_*656 0 python numpy filter python-3.x
我是一个蟒蛇初学者.我在包含我的x和y值的文本文件(.txt)中给出的数据.x和y值以制表符分隔.
(x values) (y values)
113 0
116 2
119 0
214 3
220 0
230 3
290 5
Run Code Online (Sandbox Code Playgroud)
我的任务是在y值为0时删除x和y值.
import numpy as np
files = ['my_data.txt']
for file in files:
data = np.loadtxt(file,unpack=True)
y_value = data[1,0:]
y_list= list(y_value)
a= np.where(y_list==0)
b = str(a)
d= del.y_list(b)
Run Code Online (Sandbox Code Playgroud)
我试图做的是识别包含零的索引并根据索引删除这些元素.给定的代码似乎不起作用.错误消息显示d= del.y_list(b)包含无效语法.
有人可以解释一下出了什么问题d= del.y_list(b)吗?或者,请随意分享任何其他更有效的方法来完成任务.
(上面的代码描述了仅从y中删除零元素.我认为如果这适用于y值,我可以使用data[0,0:].来回忆x值.)
编译器说:
del.y_list(b)
Run Code Online (Sandbox Code Playgroud)
是无效的语法.通常一个人写道:
del variable
del variable[index]
del variable.attribute
Run Code Online (Sandbox Code Playgroud)
删除该变量的变量,索引或属性.然而,我不明白为什么你这么努力.你可以简单地写:
import numpy as np
files = ['my_data.txt']
for file in files:
data = np.loadtxt(file,unpack=True)
data_filtered = data[:,data[1,:] != 0]Run Code Online (Sandbox Code Playgroud)
现在data_filtered将包含一个numpy矩阵,其中只有行y不等于零.这将是有效的,而且你仍然可以对该矩阵执行各种操作,因为它是一个numpy矩阵.
对于您的示例输入,这会生成:
>>> data[:,data[1,:] != 0]
array([[ 116., 214., 230., 290.],
[ 2., 3., 3., 5.]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |