【发布时间】:2015-10-31 03:51:00
【问题描述】:
我有一个文档¹,其中一个 n 维矩阵存储为:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
具有存储在元数据中的精确尺寸。 4 和 5 由\n 分隔,not 由 分隔。然而,numpy.fromstring('1 2\n3 4', sep=" ") 确实 做我想做的事,尽管文档另有说明。我对是否依赖与定义的行为不同的实现犹豫不决。
为什么numpy.fromstring("1 2\n3 4", sep=" ") 和numpy.fromstring("1 2\n3 4", sep="\n") 给我(期望的)array([ 1., 2., 3., 4.]),是否有更强大的(如:对应于记录/定义的行为)具有相同的效果?
¹该文档是一个 XML 文件,其中树中最低元素的文本表示数字数据。我无法控制这种文件格式。
【问题讨论】:
-
所以期望的行为是获取单个数组中的所有元素?不作为矩阵?
-
\n算作extra whitespace被忽略。此函数中未提供维度元数据。 -
@AnandSKumar 是的。只要我得到所有元素,我就可以轻松
.resize。我正在阅读的文件格式可以包含最大为 7 维的数组,因此无论如何它都会被展平超过 3 维。 -
我建议您自己将输入分成几行,例如
txt.splitlines()。这样你就可以计算空行。此功能仍可用于单独的线路。或者你可以使用[int(x) for x in aline.split(' ')]。 -
@hpaulj 当然,两者都有效。