小编Bot*_*ond的帖子

Beautifulsoup多类选择器

我想选择所有将A和B分别作为类属性的div.

以下选择

soup.findAll('div', class_=['A', 'B'])
Run Code Online (Sandbox Code Playgroud)

但是选择在其类属性中具有EITHER A或B的所有div.类可以有任何顺序的许多其他属性(C,D等),但我想只选择那些同时具有A和B的属性.

python beautifulsoup

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

Pandas数据帧:截断字符串字段

我有一个数据框,并希望将每个字段截断为最多20个字符.我天真地尝试以下方法:

df = df.astype(str).apply(lambda x: x[:20])
Run Code Online (Sandbox Code Playgroud)

但它没有任何效果.但是,如果我想在每个字段中添加一个"Y",这就像一个魅力:

df = df.astype(str).apply(lambda x: x+'Y')
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

pandas

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

Django REST 批量发布/发布 JSON 对象数组

我已经开始尝试使用 Django REST 框架。到目前为止,我成功地为我的对象创建了一个序列化程序,通过 Javascript 的 $.post() 创建了 post 视图、post 对象和 return 对象。所以现在我在我的 JSON 和 Django 模型对象之间进行了正确的转换。

问题是我有一个对象数组 [A1, A2, ..., An]。现在当我需要发布这样一个数组时,我会逐个对象地进行。是否有可能一次发布整个数组,并在我的 Django 视图中恢复一组对象?如果是这样,这里要遵循的模式是什么?我想我可以定义一个新模型,它是我当前模型的数组,为它创建一个序列化程序等等,但这似乎不太优雅。

以下是我的视图和序列化程序:

#serializers.py
class SearchRequestSerializer(serializers.ModelSerializer):

    def create(self):
        return SearchRequest(**self.validated_data)

    class Meta:
        model = SearchRequest



#views.py
@api_view(['POST'])
def post_calculation(request):
    if request.method == 'POST':

        #JSON to serializer object
        serializer = SearchRequestSerializer(data=request.data, many=False)
        if (serializer.is_valid() == False):
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

        #create the Python object   
        search_request = serializer.create()

        #-- I do some processing stuff with the search_request object here ---

        #object …
Run Code Online (Sandbox Code Playgroud)

django json django-rest-framework

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

如何在Python多处理上识别进程的CPU核心ID?

multiprocessing我正在使用 SLURM 在集群上测试 Python 的模块。我想绝对确保我的每个任务实际上都按照我的意图在单独的 cpu 核心上运行。由于配置 SLURM 的可能性有很多,因此这一点并不明显。

因此,我想知道是否有一种方法可以从正在运行的Python任务中获取核心特定信息。我需要我的 Python 脚本来获取有关其运行的核心的信息,以便区分各个核心。

考虑以下脚本。已启动 10 个任务。有没有办法让它们每个人打印有关它们所分配到的核心的核心特定信息?

import multiprocessing

def hello():
    print "Hello World"

pool = multiprocessing.Pool()
jobs = []
for j in range(10):
    p = multiprocessing.Process(target = hello)
    jobs.append(p)
    p.start()
Run Code Online (Sandbox Code Playgroud)

我在这里这里找到的模块提供了 CPU 特定信息,但这些是关于可用 CPU 的信息,而不是运行时的核心信息。

python multiprocessing cpu-cores python-multiprocessing

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

Django REST序列化程序:创建对象而不保存

我已经开始使用Django REST框架了.我想要做的是用一些JSON POST一个请求,从中创建一个Django Model对象,并使用该对象而不保存它.我的Django模型叫做SearchRequest.我有的是:

@api_view(['POST'])
def post_calculation(request):
    if request.method == 'POST':
        #JSON to serializer object
        serializer = SearchRequestSerializer(data=request.data)
        if (serializer.is_valid() == False):
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        mySearchRequestObject = serializer.save()
Run Code Online (Sandbox Code Playgroud)

这确实创建了一个SearchRequest对象,但是立即将其保存到数据库中.我需要它而不保存.

python django django-rest-framework

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

MongoDB 查找今天的记录

在 Mongo shell 中,如何过滤今天(或特定日期)添加的记录?我没有新记录时间戳的特定字段,但我想它可以从 ObjectID 恢复。

mongodb

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

减少 Python 搁架大小

我使用 gdbmshelve 模块来存储 Python 对象。据我所知,它用于存储对象。不幸的是,我的书架尺寸太大了。我找到了这个解决方案或单独的泡菜。我的问题是:有没有办法压缩所有泡菜?shelvepicklebzip2gzipshelve

python shelve pickle

6
推荐指数
0
解决办法
713
查看次数

Matplotlib 小刻度

我正在尝试自定义 matplotlib 图中的小刻度。考虑以下代码:

import pylab as pl
from matplotlib.ticker import AutoMinorLocator

fig, ax = pl.subplots(figsize=(11., 7.4))

x = [1,2,3, 4]
y = [10, 45, 77, 55]
errorb = [20,66,58,11]

pl.xscale("log")

ax.xaxis.set_minor_locator(AutoMinorLocator(2))
ax.yaxis.set_minor_locator(AutoMinorLocator(2))

pl.tick_params(which='both', width=1)
pl.tick_params(which='minor', length=4, color='g')
pl.tick_params(axis ='both', which='major', length=8, labelsize =20, color='r' )

pl.errorbar(x, y, yerr=errorb)
#pl.plot(x, y)

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

据我了解,AutoMinorLocator(n)应该在每个主要刻度之间插入 n 个次要刻度,这是在线性刻度上发生的情况,但根本无法弄清楚在对数刻度上放置次要刻度背后的逻辑。errorbar()最重要的是,使用时比使用简单时有更多的小问题plot()

python matplotlib

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

mpld3三维散点图

我正在探索mpld3库,无法弄清楚如何创建3D散点图.使用Matplotlib,我会这样做:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter([1],[5],[7])
plt.show()
Run Code Online (Sandbox Code Playgroud)

同样,用mpld3我试过(在Jupyter笔记本中):从mpl_toolkits.mplot3d导入matplotlib.pyplot作为plt导入Axes3D导入mpld3

mpld3.enable_notebook()
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter([1],[5],[7])
mpld3.display(fig) 
Run Code Online (Sandbox Code Playgroud)

我得到了错误

TypeError: array([ 0.94,  1.06]) is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

这是完整的错误日志:

Traceback (most recent call last) <ipython-input-26-54fc4a65da87> in <module>()
      6 N = 50
      7 ax.scatter([1],[5],[7])
----> 8 mpld3.display(fig)

/usr/local/lib/python2.7/dist-packages/mpld3/_display.pyc in display(fig, closefig, local, **kwargs)
    288     if closefig:
    289         plt.close(fig)
--> 290     return HTML(fig_to_html(fig, **kwargs))
    291 
    292 

/usr/local/lib/python2.7/dist-packages/mpld3/_display.pyc in fig_to_html(fig, d3_url, mpld3_url, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib mpld3

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

Matplotlib 颜色图范围

我试图了解matplotlib色彩图的工作原理。考虑以下代码:

import matplotlib.pyplot as plt
cmap = plt.get_cmap('jet')
print cmap(200)
Run Code Online (Sandbox Code Playgroud)

打印

(1.0, 0.46550472040668145, 0.0, 1.0)
Run Code Online (Sandbox Code Playgroud)

所以我的理解是,颜色图将数值(在本例中为 200)映射到颜色值(在本例中为 1.0、0.46550472040668145、0.0、1.0)。matplotlib 如何设置其颜色图的范围?

是否可以定义应用线性映射的最大值和最小值?但是,如果imshow()可以设置 avmin和 avmax参数,我必须在颜色图级别上执行此操作,因为稍后我将向另一个函数提供颜色图。

这可能是关于颜色图如何工作的更普遍的问题;seaborn例如,在 的调色板中,也没有范围选项。

python matplotlib seaborn colormap

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

带图例的 Seaborn 聚类图行颜色

我找到了以下解决方案来将行颜色图例添加到 Seaborn 聚类图中:

如何在 Seaborn 中的热图轴上表达类

我有两个相关问题:

  1. 如何将图例移动到聚类图的底部?
  2. 如果表示 row_color 的数据帧的索引具有名称,则它会显示为彩色行下方的标签。如何增加该标签的字体大小?

python-2.7 seaborn

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

Pool.apply_async():嵌套函数不执行

我开始熟悉 Python 的multiprocessing模块。以下代码按预期工作:

#outputs 0 1 2 3
from multiprocessing import Pool
def run_one(x):
    print x
    return

pool = Pool(processes=12)
for i in range(4):
    pool.apply_async(run_one, (i,))
pool.close()
pool.join() 
Run Code Online (Sandbox Code Playgroud)

但是,现在,如果我围绕上述代码包装一个函数,print则不会执行语句(或至少重定向输出):

#outputs nothing
def run():
    def run_one(x):
        print x
        return    

    pool = Pool(processes=12)
    for i in range(4):    
        pool.apply_async(run_one, (i,))
    pool.close()
    pool.join()
Run Code Online (Sandbox Code Playgroud)

如果我将run_one定义移到之外run,则输出再次是预期的,当我调用时run()

#outputs 0 1 2 3
def run_one(x):
    print x
    return

def run():    
    pool = Pool(processes=12)
    for i in range(4):       
        pool.apply_async(run_one, …
Run Code Online (Sandbox Code Playgroud)

python asynchronous multiprocessing python-multiprocessing

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

Prevent scipy from multiprocessing

I'm using scipy to compute rotations of vectors. The following code is a minimal one that reproduces my problem. It is not necessarily correct mathematically.

import numpy as np 
from scipy.linalg import expm

axis = np.array([5.0, 8.0, -2.0])
axis = axis/(np.sum(axis**2)**0.5)

theta = 0.001


for t in range(1000000):
    cx = np.cross(np.eye(3), axis*theta)
    M0 = expm(cx)
    cx = np.dot(M0, cx) 

print cx
Run Code Online (Sandbox Code Playgroud)

My problem is that running this code takes up 300% of my CPU, that is, running on 3 cores. …

python numpy scipy

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