Python:: 读取文件包括字符串、浮点数和整数
Python:: Read file includes strings, floats and integers
我正在尝试读取一个包含矩阵形式的字符串、浮点数和整数的文件,
我尝试了以下代码:
import numpy as np
with open('data.dat', 'r') as f:
input_data = f.readlines()
for p in input_data:
pizza_details = p.split(",")
print(pizza_details[1][0])
# pizza =[[1 3389.0 36]
[2 3148.0 28]
[3 3012.0 40]
[4 3321.0 61]
[5 1761.0 41]]
假设 print(pizza_details[1][0])
是仍然有效的部分并且您想将其转换为 numpy 格式?
你似乎没有初始化pizza_details
,所以它在循环中不断被覆盖,循环后只有最后一行在里面。在循环之前将其初始化为空数组,然后在循环内将拆分行添加到其中。
import numpy as np
with open('data.dat', 'r') as f:
input_data = f.readlines()
pizza_details = []
for p in input_data:
pizza_details.append(p.split(","))
现在这是一个列表列表
print(pizza_details)
> [['1', '3389.0', '36'], ['2', '3148.0', '28'], ['3', '3012.0', '40'], ['4', '3321.0', '61'], ['5', '1761.0', '41']]
现在转换为 numpy 二维数组(所有值仍然是字符串)
pizza_details = np.array(pizza_details)
print(pizza_details)
> [['1' '3389.0' '36']
['2' '3148.0' '28']
['3' '3012.0' '40']
['4' '3321.0' '61']
['5' '1761.0' '41']]
现在将类型设置为浮点型,以便您可以使用数值
pizza_details = pizza_details.astype(float)
print(pizza_details)
> [[1.000e+00 3.389e+03 3.600e+01]
[2.000e+00 3.148e+03 2.800e+01]
[3.000e+00 3.012e+03 4.000e+01]
[4.000e+00 3.321e+03 6.100e+01]
[5.000e+00 1.761e+03 4.100e+01]]
我正在尝试读取一个包含矩阵形式的字符串、浮点数和整数的文件,
我尝试了以下代码:
import numpy as np
with open('data.dat', 'r') as f:
input_data = f.readlines()
for p in input_data:
pizza_details = p.split(",")
print(pizza_details[1][0])
# pizza =[[1 3389.0 36]
[2 3148.0 28]
[3 3012.0 40]
[4 3321.0 61]
[5 1761.0 41]]
假设 print(pizza_details[1][0])
是仍然有效的部分并且您想将其转换为 numpy 格式?
你似乎没有初始化pizza_details
,所以它在循环中不断被覆盖,循环后只有最后一行在里面。在循环之前将其初始化为空数组,然后在循环内将拆分行添加到其中。
import numpy as np
with open('data.dat', 'r') as f:
input_data = f.readlines()
pizza_details = []
for p in input_data:
pizza_details.append(p.split(","))
现在这是一个列表列表
print(pizza_details)
> [['1', '3389.0', '36'], ['2', '3148.0', '28'], ['3', '3012.0', '40'], ['4', '3321.0', '61'], ['5', '1761.0', '41']]
现在转换为 numpy 二维数组(所有值仍然是字符串)
pizza_details = np.array(pizza_details)
print(pizza_details)
> [['1' '3389.0' '36']
['2' '3148.0' '28']
['3' '3012.0' '40']
['4' '3321.0' '61']
['5' '1761.0' '41']]
现在将类型设置为浮点型,以便您可以使用数值
pizza_details = pizza_details.astype(float)
print(pizza_details)
> [[1.000e+00 3.389e+03 3.600e+01]
[2.000e+00 3.148e+03 2.800e+01]
[3.000e+00 3.012e+03 4.000e+01]
[4.000e+00 3.321e+03 6.100e+01]
[5.000e+00 1.761e+03 4.100e+01]]