我很想知道这个线程标题中提到的两个函数之间的区别。在包含文档的网站上,它说,“numpy.loadtxt
[is] [an] 没有数据丢失时的等效函数。”这到底是什么意思?这是否意味着,例如,如果我有一个 csv 文件,在包含数据的两列之间有一个空白列,我不应该 numpy.loadtxt
?
还有,这是什么意思,
"unpack : bool, optional
If True, the returned array is transposed, so that arguments may be unpacked using x, y, z = loadtxt(...)"
我不太确定这是什么意思。
非常感谢您的帮助,谢谢!
最佳答案
你是对的。使用 np.genfromtxt
为您提供了一些选项,例如参数 missing_values
、filling_values
可以帮助您处理不完整的 csv
。示例:
1,2,,,5
6,,8,,
11,,,,
可以阅读:
filling_values = (111, 222, 333, 444, 555) # one for each column
np.genfromtxt(filename, delimiter=',', filling_values=filling_values)
#array([[ 1., 2., 333., 444., 5.],
# [ 6., 222., 8., 444., 555.],
# [ 11., 222., 333., 444., 555.]])
当您想将文本文件的每一列放在不同的变量中时,参数 unpack
很有用。例如,您有包含 x, y, z
列的文本文件,然后:
x, y, z = np.loadtxt(filename, unpack=True)
请注意,这与
的工作方式相同x, y, z = np.loadtxt(filename).T
默认情况下,迭代二维数组意味着迭代线条,这就是为什么您必须在本示例中转置或使用 unpack=True
。
关于python - numpy.genfromtxt 和 numpy.loadtxt 的区别,以及 Unpack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20245593/