【发布时间】:2021-12-02 11:53:45
【问题描述】:
我的代码如下:
file_ = open('file.txt', 'r')
lines = file_.readlines()
data = []
for row in lines:
temp = row.split()
data.append(np.array(temp).astype(np.float64))
我想将数组中的每个项目都转换为浮动,除了最后一个,我想保留一个字符串。
我该怎么做?
【问题讨论】:
-
不,这没有任何意义。 Numpy 数组对象是同质类型的。您可以使用
objectdtype,但为什么呢?只需使用常规列表并将 numpy 完全排除在外 -
@juanpa.arrivillaga。在这里使用重新排列不会太费力。
-
所以这是一个numpy数组的python列表。您要更改最终数组还是每个数组中的最终值?你打算以后如何使用它?您可以创建一个包含 2 个值的元组
(np.array(temp[:-1]).astype(np.float64), temp[-1])。这行得通吗? -
首先,这是您要对文件的每一行执行的操作吗?所有行的模式是否相同,
n浮动后跟 1 个字符串?如果是这样,您是否尝试过使用np.genfromtxt读取文件?使用dtype=None,您可以获得具有适当列数据类型的结构化数组。或者使用usecols选择一组列作为浮点数加载,并使用另一个加载加载字符串列。推荐结构化数组(或recarray)很容易,但我发现很多初学者并不能充分利用这种数组。