将Python numpy数组转换为C++ STL向量
我想知道怎么用C++读取一个包含numpy数组的文本文件,然后把这些数据放进vector< vector< ... > >
里,有人能帮我吗?
非常感谢!
Archy
补充:文本文件的格式
[[[ 0 1] [ 2 3] [ 4 5] [ 6 7] [ 8 9]] [[10 11] [12 13] [14 15] [16 17] [18 19]] [[20 21] [22 23] [24 25] [26 27] [28 29]] [[30 31] [32 33] [34 35] [36 37] [38 39]]]
也许这样更容易读:
[
[
[ 0 1] [ 2 3] [ 4 5] [ 6 7] [ 8 9]
]
[
[10 11] [12 13] [14 15] [16 17] [18 19]
]
[
[20 21] [22 23] [24 25] [26 27] [28 29]
]
[
[30 31] [32 33] [34 35] [36 37] [38 39]
]
]
2 个回答
0
这要看你自己的技术水平。
如果你已经有经验了,我建议你可以试试 Boost.Spirit.Qi,这是一个真正的解析库。不过,可能需要一些时间来适应它。
如果你还不太熟悉,那就要看你手头有什么信息了……等你提供更多细节后,我会再更新我的回答,因为这个问题可能会变得相当复杂 :)
0
当然可以!请看下面的内容:
这段代码是用来处理一些数据的。它的主要功能是从一个地方获取信息,然后对这些信息进行一些操作,最后再把处理后的结果返回给用户。
首先,代码会连接到一个数据库,这就像打开一个文件夹,里面存放着很多信息。接着,它会找到我们需要的数据,就像在文件夹里翻找特定的文件一样。
找到数据后,代码会对这些数据进行一些计算或修改。这一步就像是在对文件里的内容进行编辑,可能是加一些数字,或者把文字改成别的内容。
最后,处理完的数据会被送回给用户,就像把编辑好的文件保存并发给别人一样。这样,用户就能看到最新的结果了。
总的来说,这段代码的工作流程就是:连接数据库 -> 获取数据 -> 处理数据 -> 返回结果。
希望这个解释能帮助你理解这段代码的基本功能!
float val;
::std::vector<float> vals;
ifstream stream("c:/file.txt");
while(stream >> val) {
vals.push_back(val);
}