2024-04-25 20:42:29 发布
网友
2.765334406984874427e+00 3.309563282821381680e+00
文件如下所示:2行,1列 numpy.loadtxt文件()退货
请不要告诉我用途数组.转置()在这种情况下,我需要一个真正的解决办法。提前谢谢你!!在
您可能需要使用csv模块:
import csv import numpy as np reader = csv.reader( open('file.txt') ) l = list(reader) a = np.array(l) a.shape >>> (2,1)
这样,无论文件中有多少行/列,您都将获得正确的数组维度。在
如果愿意,可以使用matrix来读取字符串。让test.txt包含内容。以下是您需要的功能:
matrix
test.txt
import numpy as np def my_loadtxt(filename): return np.array(np.matrix(open(filename).read().strip().replace('\n', ';'))) a = my_loadtxt('test.txt') print a
如果输入是列向量,它将给出列向量。对于行向量,它给出行向量。在
始终可以使用“重塑形状”命令。单列文本文件作为1D数组加载,在numpy的例子中是一个行向量。在
>>> a array([ 2.76533441, 3.30956328]) >>> a[:,None] array([[ 2.76533441], [ 3.30956328]]) >>> b=np.arange(5)[:,None] >>> b array([[0], [1], [2], [3], [4]]) >>> np.savetxt('something.npz',b) >>> np.loadtxt('something.npz') array([ 0., 1., 2., 3., 4.]) >>> np.loadtxt('something.npz').reshape(-1,1) #Another way of doing it array([[ 0.], [ 1.], [ 2.], [ 3.], [ 4.]])
您可以使用维度的数量进行检查。在
或者
np.loadtxt('something.npz',ndmin=2) #Always gives at at least a 2D array.
如果你总是有一个数组,那么它的数据总是值得的。这更像是numpy数组的一个特性,而不是我认为的bug。在
您可能需要使用csv模块:
这样,无论文件中有多少行/列,您都将获得正确的数组维度。在
如果愿意,可以使用
matrix
来读取字符串。让test.txt
包含内容。以下是您需要的功能:如果输入是列向量,它将给出列向量。对于行向量,它给出行向量。在
始终可以使用“重塑形状”命令。单列文本文件作为1D数组加载,在numpy的例子中是一个行向量。在
您可以使用维度的数量进行检查。在
^{pr2}$或者
如果你总是有一个数组,那么它的数据总是值得的。这更像是numpy数组的一个特性,而不是我认为的bug。在
相关问题 更多 >
编程相关推荐