- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在描述网络连接的 .csv 文件中有一些数据。
index c id_1 id_2
0 0 1 8 10
1 1 1 7 10
2 2 1 7 10
3 3 1 2189149 29
4 4 1 27 29
其中 c
表示一个连接。此数据的形状为 (3114045, 4)
,占用约 100 MB。
我想统计 id_1 与 id_2 连接的次数。我可以通过做
adj_pivot = pd.pivot_table(data=df,
index="id_1",
columns="id_2",
values="c",
aggfunc=np.sum)
或者——而且更快——我可以做到
adj_group = df.groupby(["id_1", "id_2"]).size().unstack(fill_value=0)
无论哪种方式,这都会给我我想要的输出:
id_2 10 29
id_1
7 2.0 0
8 1.0 0
27 0 1.0
2189149 0 1.0
我的问题是,如果我用 pandas 执行上述 pivot/groupby,我将需要 ~5300 GB ram。
根据 sys.getsizeof(scipy.sparse.csr_matrix(df))
,完整 (3114045, 4)
结构的稀疏版本占用 56 个字节。用 100 000
行尝试上述方法,然后将其变为稀疏,看起来我可以将矩阵的大小压缩 10^-8
倍。
所以,我的问题是:如何在稀疏结构上复制上述 pivot+sum/groupby+fill?如果无法完成,是否有分批执行此操作的好策略?
我看过答案here ,但对我来说似乎还是有点神秘。
最佳答案
这应该有效:
grouped = df.groupby(["id_1", "id_2"]).size().reset_index()
values = grouped.values.T
scipy.sparse.csr_matrix((values[2], (values[0], values[1])))
<2189150x30 sparse matrix of type '<class 'numpy.int64'>'
with 4 stored elements in Compressed Sparse Row format>
关于python-3.x - Groupby id 并在大矩阵 (3x3 mio.) 上展开(或求和),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52005524/
我想使用 mio 在 Rust 中编写一个异步服务器,但我在缓冲区类型方面遇到了麻烦。我尝试了不同的缓冲区类型,但无法正常工作。我当前的代码是: extern crate mio; extern cr
根据mio::Poll docs : The function will block until either at least one readiness event has been receiv
根据此链接 https://docs.nvidia.com/nsight-compute/ProfilingGuide/index.html : Warp was stalled waiting fo
以下代码生成一个由poll 返回的“用户事件”: extern crate mio; use mio::event::Evented; use mio::{Events, Poll, PollOpt,
我在 mio 中编写了一个 TCP 服务器并注册了多个超时,但只有最后注册的超时才会触发。我是否需要为我的超时设置一个包装器来组合它们,或者是否有任何其他方法可以在 mio v0.5 中注册多个超时?
我正在 mio 之上构建一个多线程异步 HTTP 服务器。 我应该如何处理客户端 TcpStream 连接上的事件? is_readable 非常简单:我读取请求并写入响应。 对于其他类型我不确定。如
使用 MIO (0.3.5) 时如何检测连接的终止? 我尝试了以下方法: extern crate mio; use mio::{EventLoop,Token,ReadHint}; use std:
在旧版本的 mio 文档中,我找到了 mio::channel,它似乎被用来创建一个实现 EventedFd 的 channel ,可以用 Poll 注册。我还在 reddit 上看到这已更改为支持其
我使用 mio 在 Rust 中编写了一个多线程异步 HTTP 服务器。当我运行负载测试(使用 siege)时,服务器在第一次负载测试时运行良好,但是当负载测试完成时,对服务器的所有请求都开始失败。
我正在尝试从一篇文章中重现 TCP 客户端/服务器聊天。我无法为使用 mio crate 的服务器编译框架。这是我的代码: extern crate mio; use mio::*; struct W
我有一个驱动程序,它会在新数据准备就绪时发出 POLLPRI 事件,因为设备始终是可读的(最后数据)。 最佳答案 由于 mio 使用边缘模式,因此无需注册 EPOLLPRI,无论如何都会报告这些事件。
The mio library对于异步 I/O,依赖于开发人员提供 the Token type 的实例为了将已经发生的事件关联回源头,例如一个特别的TcpStream或 Handler::Timeo
我是一名 Rust 初学者,正在为异步 IO 问题而苦苦挣扎。我决定使用 mio . 我已经阅读了一些源代码和教程,但仍有一些基本部分我不明白。我正在使用 netcat -k -l 127.0.0.1
我尝试向 mio 添加一些 fds,包括标准输入。我的应用程序在尝试从 stdin 读取时卡住,在我从 mio 收到事件后,stdin 是可读的。 当我跟踪应用程序时,我注意到 mio 使用了 epo
赞here ,我有一个大表,它存储我们系统中的所有事件,对于一种事件类型,我有重复的行(多次错误地从另一个系统导出)。我需要删除它们以清除统计信息。上面提出的解决方案是 将记录——不重复——插入临时表
我正在使用 mio::udp::UdpSocket 接收对来自客户端的请求的响应。看起来我在触发事件上收到了部分 UDP 数据包。我不确定这是否是 mio 库中的错误。 我已经尝试过 PollOpt:
我在描述网络连接的 .csv 文件中有一些数据。 index c id_1 id_2 0 0 1 8 10 1
在尝试改编 example server ,不知道如何理解这种行为,因为我要求的 TcpStream 和我得到的似乎完全不同。 示例结构定义: use mio::tcp::TcpStream; str
出于学习目的,我目前正在尝试编写一个小程序,该程序将为 UDP 数据包实现 echo-server,它将在特定端口集(比如 10000-60000)上工作。因此,为此发送 50k 线程垃圾邮件并不是一
我现在在学习cocos2dx,用xcode搭建demo,还可以,但是用xcodebuild搭建的时候就报错。 xcodebuild -project proj.ios/CoinFlip.ios.xco
我是一名优秀的程序员,十分优秀!