我需要使用matshow显示我的矩阵的值.但是,使用我现在的代码,我只得到两个矩阵 - 一个有值,另一个有颜色.我该怎么强加他们?谢谢 :)
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
min_val, max_val = 0, 15
for i in xrange(15):
for j in xrange(15):
c = intersection_matrix[i][j]
ax.text(i+0.5, j+0.5, str(c), va='center', ha='center')
plt.matshow(intersection_matrix, cmap=plt.cm.Blues)
ax.set_xlim(min_val, max_val)
ax.set_ylim(min_val, max_val)
ax.set_xticks(np.arange(max_val))
ax.set_yticks(np.arange(max_val))
ax.grid()
Run Code Online (Sandbox Code Playgroud)
输出:
我对pandas数据帧很新,我遇到了加入两个表的麻烦.
第一个df只有3列:
DF1:
item_id position document_id
336 1 10
337 2 10
338 3 10
1001 1 11
1002 2 11
1003 3 11
38 10 146
Run Code Online (Sandbox Code Playgroud)
而第二列完全相同的两列(还有很多其他列):
DF2
item_id document_id col1 col2 col3 ...
337 10 ... ... ...
1002 11 ... ... ...
1003 11 ... ... ...
Run Code Online (Sandbox Code Playgroud)
我需要的是执行一个在SQL中看起来如下的操作:
DF1 join DF2 on
DF1.document_id = DF2.document_id
and
DF1.item_id = DF2.item_id
Run Code Online (Sandbox Code Playgroud)
因此,我希望看到DF2,并补充列"位置":
item_id document_id position col1 col2 col3 ...
Run Code Online (Sandbox Code Playgroud)
用熊猫做这个的好方法是什么?
谢谢!
我有以下问题。我的目的是处理一堆文档(将所有单词转换为正常形式,例如 'was' --> 'be', 'were' --> 'be', 'went' --> 'go')。这意味着,我需要打开目录中的每个文件,更改其内容并将其保存在另一个目录中。
由于这个过程很耗时,我决定在joblib的帮助下进行并行处理。下面的代码可以正常工作(我的意思是,它执行了它必须执行的操作),但是我遇到了一个巨大的内存问题。
它一直在不断增长!
它会一直增长,直到服务器上根本没有剩余内存。
from joblib import delayed, Parallel
def process_text(text):
# some function which processes
# text and returns a new text
return processed_text
def process_and_save(document_id):
with open(path + document_id) as f:
text = f.read()
text = process_text(text)
f = open(other_path + document_id, 'w')
f.write(text)
f.close()
all_doc_ids = # a list of document ids which I need to process
Parallel(n_jobs=10)(delayed(process_and_save)(doc_id) for doc_id in all_doc_ids)
Run Code Online (Sandbox Code Playgroud)
我还尝试将 joblib 更改为 multipricessing:
pool = …Run Code Online (Sandbox Code Playgroud) 我对 SQL 很陌生,并且面临以下问题。考虑我们有一个包含两列的表:
A B
10 20
NULL 15
25 10
50 30
NULL 100
Run Code Online (Sandbox Code Playgroud)
我需要的是选择满足以下条件的行:
要么
1)A为NULL
或
2)A <B
这意味着,因此我想看到这样的表格:
A B
10 20
NULL 15
NULL 100
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下查询:
SELECT * FROM mytable
WHERE A < B OR A is NULL
Run Code Online (Sandbox Code Playgroud)
但它似乎不像我想象的那样工作。
正确的查询应该是什么样的?谢谢!