将数字列表传递给Python脚本
我试图将一列数字传递给Python脚本,然后将其转换为将数字列表传递给Python脚本,python,Python,我试图将一列数字传递给Python脚本,然后将其转换为numpy数组 input.txt 42 42.4 43.5153 44 #!/usr/bin/env python3 import sys import numpy in = sys.argv[1] in_out = np.array([float(in)]) print "Inputs:" in_out sys.exit() Bash代码 python script.py ${input} Python脚本 42 42.4 4
numpy
数组
input.txt
42
42.4
43.5153
44
#!/usr/bin/env python3
import sys
import numpy
in = sys.argv[1]
in_out = np.array([float(in)])
print "Inputs:" in_out
sys.exit()
Bash代码
python script.py ${input}
Python脚本
42
42.4
43.5153
44
#!/usr/bin/env python3
import sys
import numpy
in = sys.argv[1]
in_out = np.array([float(in)])
print "Inputs:" in_out
sys.exit()
Python错误
Traceback (most recent call last):
File "script.py", line 8, in <module>
in_out = np.array([float(in)])
ValueError: invalid literal for float(): 42
回溯(最近一次呼叫最后一次):
文件“script.py”,第8行,在
in_out=np.数组([float(in)])
ValueError:浮点()的文本无效:42
将numpy作为np导入
打开('input.txt')作为输入文件:
data=np.array([float(line.strip())表示输入文件中的行])
您需要将所有值强制转换为float,以便numpy在数组中只存储一个数据类型
如果要将文件作为参数提供,可以执行以下操作:
将numpy导入为np
导入系统
文件名=sys.argv[1]
打开(文件名)作为输入文件:
data=np.array([float(line.strip())表示输入文件中的行])
将numpy作为np导入
打开('input.txt')作为输入文件:
data=np.array([float(line.strip())表示输入文件中的行])
您需要将所有值强制转换为float,以便numpy在数组中只存储一个数据类型
如果要将文件作为参数提供,可以执行以下操作:
将numpy导入为np
导入系统
文件名=sys.argv[1]
打开(文件名)作为输入文件:
data=np.array([float(line.strip())表示输入文件中的行])
我认为问题在于您的in
变量(在Python中不能是变量,但我们将使用它)是一个包含所有值的字符串。因此,您需要将其拆分并将float
分别应用于每个:
np.array(list(map(float, in.split())))
但是我建议直接从Python中读取
input.txt
文件。我认为问题在于in
变量(在Python中不能是变量,但我们将使用它)是一个包含所有值的字符串。因此,您需要将其拆分并将float
分别应用于每个:
np.array(list(map(float, in.split())))
但是我建议直接从Python中读取
input.txt
文件。使用np.loadtxt
Ex:
import numpy as np
in_out = np.loadtxt(filename, dtype=float)
print(in_out)
[42. 42.4 43.5153 44. ]
输出:
import numpy as np
in_out = np.loadtxt(filename, dtype=float)
print(in_out)
[42. 42.4 43.5153 44. ]
使用
np.loadtxt
Ex:
import numpy as np
in_out = np.loadtxt(filename, dtype=float)
print(in_out)
[42. 42.4 43.5153 44. ]
输出:
import numpy as np
in_out = np.loadtxt(filename, dtype=float)
print(in_out)
[42. 42.4 43.5153 44. ]
什么是和${input}中的
?我想你需要阅读文件,而不是阅读和解析文件名,请原谅我的打字错误。我已经编辑了原始问题
和${input}
中的是什么?我想你需要阅读文件,而不是阅读和解析文件名,请原谅我的打字错误。我已编辑了原始问题