小编Vla*_*gas的帖子

jupyter笔记本中的内存限制

如何为jupyter笔记本进程设置最大内存限制?

如果我使用太多RAM,计算机将被阻止,我必须按电源按钮手动重启计算机.

有没有办法在超过用户设置的内存限制时自动终止jupyter笔记本进程或抛出内存错误?谢谢

jupyter jupyter-notebook

14
推荐指数
1
解决办法
6662
查看次数

Gitlab“通知”像github一样?

在 github 中有一个面板,人们可以在其中像查看邮件收件箱一样查看通知。gitlab 有类似的东西吗?我一直没能找到它。

notifications gitlab

8
推荐指数
1
解决办法
190
查看次数

多处理和Selenium Python

我有3个驱动程序(Firefox浏览器),我希望它们do something在网站列表中.

我有一个工人定义为:

def worker(browser, queue):
    while True:
        id_ = queue.get(True)
        obj = ReviewID(id_)
        obj.search(browser)
        if obj.exists(browser):
            print(obj.get_url(browser))
        else:
            print("Nothing")
Run Code Online (Sandbox Code Playgroud)

因此,worker只会访问包含id的队列并使用浏览器执行某些操作.

我想拥有一个工作池,这样一旦工人完成了使用浏览器在id_定义的网站上做某事,那么它会立即开始使用相同的浏览器在队列中找到的下一个id_上做某事.我有这个:

pool = Pool(processes=3)  # I want to have 3 drivers
manager = Manager()
queue = manager.Queue()
# Define here my workers in the pool
for id_ in ids:
    queue.put(id_)
for i in range(3):
    queue.put(None)
Run Code Online (Sandbox Code Playgroud)

我有一个问题,我不知道如何定义我的工人,以便他们在池中.对于每个驱动程序,我需要分配一个worker,并且所有worker都共享同一个id队列.这可能吗?我该怎么做?

我的另一个想法是创建一个浏览器队列,这样如果一个驱动程序什么也不做,它将由一个worker和一个来自队列的id_来执行,以便执行一个新进程.但我对多处理完全不熟悉,实际上不知道怎么写这个.

我感谢您的帮助.

python selenium python-multiprocessing

7
推荐指数
1
解决办法
2793
查看次数

绘制锥体时断开连接的曲面

我想用python绘制曲面(z + 1)²=x²+y²和4z =x²+y².

我写了这段代码:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
X= np.arange(-2,3,.1)
Z=np.arange(0,2,.1)
X,Z = np.meshgrid(X,Z)
Y=np.sqrt((Z+1)**2-X**2)
Y2=np.sqrt(4*Z-X**2)
ax.plot_wireframe(X, Y, Z, rstride = 1, cstride =1)
ax.plot_wireframe(X, -Y, Z, rstride = 1, cstride =1)
ax.plot_surface(X,Y2,Z,rstride=1,cstride=1,color='red')
ax.plot_surface(X,-Y2,Z,rstride=1,cstride=1,color='red')
ax.set_zlim(0,2)

plt.show()
Run Code Online (Sandbox Code Playgroud)

这必须显示两个锥体.但是,每个锥体都不是连续的,即有一些面缺失,我不知道为什么.任何帮助将非常感谢.

python matplotlib

6
推荐指数
1
解决办法
1870
查看次数

停用 Altair 中的工具提示

我正在使用 Python 查看Altair 中带有误差线的条形图示例。如果将鼠标悬停在错误栏上,则可以获得有关数据属性的信息。但是,我想停用此功能。我怎样才能做到这一点?代码是这样的:

import altair as alt
from vega_datasets import data

source = data.barley()

bars = alt.Chart().mark_bar().encode(
    x='year:O',
    y=alt.Y('mean(yield):Q', title='Mean Yield'),
    color='year:N',
)

error_bars = alt.Chart().mark_errorbar(extent='ci').encode(
    x='year:O',
    y='yield:Q'
)

alt.layer(bars, error_bars, data=source).facet(
    column='site:N'
)
Run Code Online (Sandbox Code Playgroud)

python altair

6
推荐指数
1
解决办法
557
查看次数

隐藏径向刻度标签matplotlib

我试图用这段代码绘制极坐标图:

import numpy as np
import matplotlib.pylab as plt
def power(angle, l, lam):
    return 1/(lam) * ((np.cos(np.pi*l*np.cos(angle)/lam) - np.cos(np.pi*l/lam))/np.sin(angle))**2
fig = plt.figure(1)
ax = fig.add_subplot(111, projection='polar')
theta = np.linspace(0.001, 2*np.pi, 100)
P1 = power(theta, 1, 5)
ax.plot(theta, P1, color='r', linewidth=3)
plt.savefig('1.png')
Run Code Online (Sandbox Code Playgroud)

我得到这个情节:

在此输入图像描述

我想改变两件事.第一个也是更重要的一个是隐藏径向刻度标签(我只是想显示绘图的一般形式).

如果可能,如何选择垂直轴对应0°?

谢谢你的帮助.

python plot matplotlib

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

Pymongo多处理

我必须在MongoDB上进行大量的插入和更新.

我正在尝试测试多处理来完成这些任务.为此,我创建了这个简单的代码.我的虚拟数据是:

documents = [{"a number": i} for i in range(1000000)]
Run Code Online (Sandbox Code Playgroud)

没有多处理:

time1s = time.time()
client = MongoClient()
db = client.mydb
col = db.mycol
for doc in documents:
    col.insert_one(doc)
time1f = time.time()
print(time1f-time1s)
Run Code Online (Sandbox Code Playgroud)

我有150秒.

通过多处理,我根据需要定义了以下工作函数,并在Pymongo的常见问题解答中进行了描述.

def insert_doc(document):
    client = MongoClient()
    db = client.mydb
    col = db.mycol
    col.insert_one(document)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的代码时:

time2s = time.time()
pool = mp.Pool(processes=16)
pool.map(insert_doc, documents)
pool.close()
pool.join()
time2f = time.time()
print(time2f - time2s)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

pymongo.errors.ServerSelectionTimeoutError:localhost:27017:[Errno 99]无法分配请求的地址

在提出错误之前,共处理了26447份文件.此处解释此错误,但遇到该错误的人没有使用多处理.解决方案是只打开一个MongoClient,但是当我想进行多处理时,这是不可能的.有没有解决方法?谢谢你的帮助.

python mongodb pymongo

3
推荐指数
1
解决办法
4339
查看次数

使用 BeautifulSoup 从 XML 文件读取 CDATA

我将推文保存在 XML 文件中:

\n\n
<tweet>\n  <tweetid>142389495503925248</tweetid>\n  <user>ccifuentes</user>\n  <content><![CDATA[Salgo de #VeoTV , que d\xc3\xada m\xc3\xa1s largoooooo...]]></content>\n  <date>2011-12-02T00:47:55</date>\n  <lang>es</lang>\n  <sentiments>\n   <polarity><value>NONE</value><type>AGREEMENT</type></polarity>\n  </sentiments>\n  <topics>\n   <topic>otros</topic>\n  </topics>\n </tweet>\n
Run Code Online (Sandbox Code Playgroud)\n\n

为了解析这些,我通过创建了一个 BeautifulSoup 实例

\n\n
soup = BeautifulSoup(xml, "lxml")\n
Run Code Online (Sandbox Code Playgroud)\n\n

其中 xml 是原始 XML 文件。为了访问一条推文,我这样做了:

\n\n
tweets = soup.find_all(\'tweet\')\nfor tw in tweets:\n    print(tw)\n    break\n
Run Code Online (Sandbox Code Playgroud)\n\n

这导致

\n\n
<tweet>\n<tweetid>142389495503925248</tweetid>\n<user>ccifuentes</user>\n<content></content>\n<date>2011-12-02T00:47:55</date>\n<lang>es</lang>\n<sentiments>\n<polarity><value>NONE</value><type>AGREEMENT</type></polarity>\n</sentiments>\n<topics>\n<topic>otros</topic>\n</topics>\n</tweet>\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,当我打印第一条推文时,省略了 CDATA 部分。获得它对我来说很重要,我该怎么做?

\n

xml beautifulsoup python-3.x

3
推荐指数
1
解决办法
1527
查看次数

如何在 Pytorch 中将张量转换为复杂类型?

我想用 Pytorch 做一些量子力学计算,其中的数量有时很复杂。我想知道如何将现有的实张量转换为复杂类型。

pytorch

3
推荐指数
1
解决办法
3109
查看次数

在 Altair 的每个方面子图中显示 x 和 y 标签

我参考这个例子

import altair as alt
from vega_datasets import data
iris = data.iris()

alt.Chart(iris).mark_point().encode(
    x='petalLength:Q',
    y='petalWidth:Q',
    color='species:N'
).properties(
    width=180,
    height=180
).facet(
    facet='species:N',
    columns=2
)
Run Code Online (Sandbox Code Playgroud)

这会生成一个包含 3 个子图的图,其中 x 轴和 y 轴是共享的。我希望每个子图都有自己的 x 和 y 标签(即使这是重复的)。我怎样才能实现这个目标?

python altair

3
推荐指数
1
解决办法
1447
查看次数

如何调用外部函数?

我有以下功能

REAL FUNCTION myfunction(x)

    IMPLICIT NONE
    REAL, INTENT(IN) :: x
    myfunction = SIN(x)

END FUNCTION myfunction
Run Code Online (Sandbox Code Playgroud)

在一个名为 myfunction.f90

我想在其他 f90 文件中使用此功能。我怎样才能做到这一点?

fortran

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

没有C类型的参数

我是编程语言的新手,并想知道是否可以将没有特定类型的参数传递给函数.例如,我有以下代码片段定义了一个add将占用内存块的函数,检查它是否通过另一个函数填充,然后将一个元素添加到与该内存块相关的列表中.

该元素可以是int,float或char.所以我想写:

add(arrs1,20); //or also
add(arrs2,'b'); //or also
add(arrs3, 4.5);
Run Code Online (Sandbox Code Playgroud)

其中arrs#定义为struct arrs arrs#,并且它们引用浮点数,整数或字符数组但不混合.我怎么能做到这一点?

int add(arrs list, NEW_ELEMENT){//adds NEW_ELEMENT at the end of an arrs
  int check_if_resize;
  check_if_resize=resize(list, list->size + 1);
  list->ptr[list->used++] = NEW_ELEMENT;
  return check_if_resize;
}
Run Code Online (Sandbox Code Playgroud)

我感谢您的帮助.

c arguments argument-passing

0
推荐指数
1
解决办法
173
查看次数