python中如何在矩阵中添加一列或是一行??

python中如何在矩阵中添加一列或是一行??,第1张

例如文件t.data数据格式如下 1,2,3 4,5,6 7,8,9 //读入文件 file=open("t.data","r") //初始化矩阵 matrix=[] //读入数据并加到矩阵中 for line in file: line.strip() matrix.append(line.split(',')) //打印 print(matrix)

一般说来dataframe就是a set of columns, each column is an array of values. In pandas, the array is one way or another a (maybe variant of) numpy ndarray. 而ndarray本身不存在一种in place append的 *** 作。。。因为它实际上是一段连续内存。。。任何需要改变ndarray长度的 *** 作都涉及分配一段长度合适的新的内存,然后copy。。。这是这类 *** 作慢的原因。。。如果pandas dataframe没有用其他设计减少copy的话,我相信Bren说的"That's probably as efficient as any"是很对的。。。

所以in general, 正如Bren说的。。。Pandas/numpy structures are fundamentally not suited for efficiently growing.

Matti 和 arynaq说的是两种常见的对付这个问题的方法。。。我想Matti实际的意思是把要加的rows收集成起来然后concatenate, 这样只copy一次。arynaq的方法就是预先分配内存比较好理解。。。

如果你真的需要incrementally build a dataframe的话,估计你需要实际测试一下两种方法。。。

我的建议是,如有可能,尽力避免incrementally build a dataframe, 比如用其他data structure 收集齐所有data然后转变成dataframe做分析。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11748630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存