我想选择所有将A和B分别作为类属性的div.
以下选择
soup.findAll('div', class_=['A', 'B'])
Run Code Online (Sandbox Code Playgroud)
但是选择在其类属性中具有EITHER A或B的所有div.类可以有任何顺序的许多其他属性(C,D等),但我想只选择那些同时具有A和B的属性.
我有一个数据框,并希望将每个字段截断为最多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)
我究竟做错了什么?
我已经开始尝试使用 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) 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)
我已经开始使用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对象,但是立即将其保存到数据库中.我需要它而不保存.
在 Mongo shell 中,如何过滤今天(或特定日期)添加的记录?我没有新记录时间戳的特定字段,但我想它可以从 ObjectID 恢复。
我正在尝试自定义 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()。
我正在探索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) 我试图了解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例如,在 的调色板中,也没有范围选项。
我找到了以下解决方案来将行颜色图例添加到 Seaborn 聚类图中:
我有两个相关问题:
我开始熟悉 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) 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. …