小编Kin*_*gua的帖子

我们如何将 Python Pandas DataFrame 重塑为 C-Contiguous 内存?

我正在使用 Pandas 在内存中加载二维数据集,并执行 4 个简单的机器学习预处理任务,例如添加/删除列、重新索引、训练/测试拆分。

#Read file
MLMe = pd.read_table("data/dtCTG.txt", ",")
#Label target column to "class"
MLMe.rename(columns={'NSP' : 'class'}, inplace=True)

#Create train/test indices
MLMe_class = MLMe['class'].values
training_indices, validation_indices = training_indices, testing_indices = train_test_split(
MLMe.index, stratify = MLMe_class, train_size=0.75, test_size=0.25)

#Create train/test data sets
X_train = MLMe.drop('class',axis=1).loc[training_indices].values
y_train = MLMe.loc[training_indices,'class'].values

X_test = MLMe.drop('class',axis=1).loc[validation_indices].values
y_test = MLMe.loc[validation_indices, 'class'].values

#Final datasets to be used for training
X_train, y_train, X_test, y_test
Run Code Online (Sandbox Code Playgroud)

现在,当我将 X_train、y_train 数据帧传递给某些库时,我收到一条错误消息,指出缓冲区不再是 C 连续的。

BufferError: memoryview: underlying buffer is not C-contiguous
Run Code Online (Sandbox Code Playgroud)

我的问题是: …

python numpy python-3.x pandas scikit-learn

5
推荐指数
1
解决办法
1099
查看次数

Docker 容器是否共享一个 Python GIL?

当我在 Docker 容器中运行 Python 脚本时,它会在大约 1 分钟内完成一个执行循环。现在,当我从同一个映像中再启动 2 个容器,并在其中运行 Python 脚本时,一切都变慢了,开始每个循环需要 5-6 分钟。

没有一个脚本是资源绑定的;有大量 RAM 和 CPU 内核闲置。在 64 核 Xeon Phi 系统上运行 3 个容器时会发生这种情况。

那么 Docker 是否在所有容器之间共享一个通用的 Python GIL 锁?分离 GIL 的选项有哪些,以便每个进程都能以最大速度运行?

谢谢!

python virtualization containers python-3.x docker

5
推荐指数
1
解决办法
814
查看次数

我怎样才能 numactl membind Docker 容器内的进程?

我有一个 Intel Xeon Phi 64 核 CPU,具有 16GB片上内存,设置为 NUMA 节点 1。我想将 Docker 容器内运行的进程绑定到此 NUMA 节点,但出现错误:

root@Docker$ sudo numactl --membind 1 python script.py
Error: set_mempolicy: Operation not permitted
setting membind: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我也尝试将整个 Docker mothership 绑定到 NUMA 节点 1,但没有成功:

localhost$ sudo numactl --membind 1 docker run xyz /bin/bash
Run Code Online (Sandbox Code Playgroud)

这不会给出任何错误,但显示没有使用片上内存。

我的问题是:如何成功将进程绑定到 NUMA 节点 1?谢谢!

python linux virtualization numa docker

5
推荐指数
2
解决办法
7223
查看次数

如何用唯一ID替换Python Pandas表文本值?

我正在使用Pandas以这种格式读取文件:

fp = pandas.read_table("Measurements.txt")
fp.head()

"Aaron", 3, 5, 7  
"Aaron", 3, 6, 9  
"Aaron", 3, 6, 10 
"Brave", 4, 6, 0 
"Brave", 3, 6, 1
Run Code Online (Sandbox Code Playgroud)

我想用唯一的ID替换每个名称,因此输出如下:

"1", 3, 5, 7 
"1", 3, 6, 9 
"1", 3, 6, 10 
"2", 4, 6, 0 
"2", 3, 6, 1
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

谢谢!

python python-3.x pandas

3
推荐指数
2
解决办法
1351
查看次数