小编Elg*_*rov的帖子

恢复matplotlib默认轴刻度

我的问题是如何在更改它们后恢复matplotlib默认轴刻度.例如,在下面的代码中,我绘制了1到9的数字平方,然后将yticks更改为[20,40,60].在我更改之前,此图的默认yticks是[0,10,20,30,40,50,60,70,80].所以,从现在开始,我怎样才能恢复那些默认的yticks?

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(9) + 1
y = x ** 2
fig, ax1 = plt.subplots()
ax1.plot(x, y)
ax1.set_yticks([20, 40, 60])
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib axis-labels

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

Django Stripe JS阻止内联脚本

我正在尝试在Django中实现条纹支付系统。要添加卡付款,我遵循了此链接中的指南在Django模板中添加HTML标记以及CSS和JS代码作为单独的静态文件后,在Firefox中出现以下控制台错误:

Content Security Policy: The page’s settings blocked the loading of a resource at inline (“script-src”)
Run Code Online (Sandbox Code Playgroud)

我从上述错误消息中了解到的是,<script src="https://js.stripe.com/v3/"></script>JS文件包含指向其他JS文件的链接,而Firefox阻止了此类连接。应当注意,在此阶段,测试信用卡付款正在按预期方式工作,并且客户借记的金额已添加到我的条纹帐户的测试余额中。为了解决此阻塞问题,我遵循了此链接中的说明因此,我meta在Django模板中添加了以下标记:

<meta http-equiv="Content-Security-Policy" content="connect-src https://api.stripe.com; frame-src https://js.stripe.com https://hooks.stripe.com; script-src https://js.stripe.com" />
Run Code Online (Sandbox Code Playgroud)

添加上述Content-Security-Policy指令后,Firefox控制台不再显示上述阻止错误,但是这次我的静态JS文件被阻止了。我修改了如下指令以允许我的JS文件('self'script-src'指令中添加了' ):

<meta http-equiv="Content-Security-Policy" content="connect-src https://api.stripe.com; frame-src https://js.stripe.com https://hooks.stripe.com; script-src 'self' https://js.stripe.com" />
Run Code Online (Sandbox Code Playgroud)

并且这一次之前提到的内联脚本阻止错误再次出现在Firefox控制台中。:)

您能帮我解决这个问题吗?关于Firefox控制台错误的原因,我的理解正确吗?为什么实施的解决方案不起作用?

编辑

考虑到付款按预期进行并且Chromium浏览器未在开发人员工具上记录任何错误,难道仅仅是Firefox的错误?

django firefox inline-scripting stripe-payments content-security-policy

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

Django ModelMultipleChoiceField 相关 m2m 对象的延迟加载

我尝试在模型的管理页面之一中使用django.forms.ModelMultipleChoiceField,以便m2m通过表单更新关系。我还指定django.contrib.admin.widgets.FilteredSelectMultiple为表单字段的小部件并成功实现了我的目的。问题是,由于我有超过 10K 的相关对象,所有这些对象都作为选项包含在表单页面中,这使得页面非常慢。django.contrib.auth.models.Group为了说明这个问题,我在这里添加了模型和相关“用户”上的本案例设备的类比。

管理员.py

from django.contrib import admin
from django.contrib.auth.models import Group

from forms import GroupAdminForm

admin.site.unregister(Group)  # get rid of default one


class GroupAdmin(admin.ModelAdmin):
    form = GroupAdminForm
    filter_horizontal = ['permissions']

admin.site.register(Group, GroupAdmin)
Run Code Online (Sandbox Code Playgroud)

表格.py

from django import forms
from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.admin.widgets import FilteredSelectMultiple
from django.contrib.auth.models import Group


User = get_user_model()


class GroupAdminForm(forms.ModelForm):
    class Meta:
        model = Group
        exclude = []

    users = forms.ModelMultipleChoiceField(
         queryset=User.objects.all(),
         required=False, …
Run Code Online (Sandbox Code Playgroud)

python django many-to-many django-admin

5
推荐指数
0
解决办法
1159
查看次数

Sliding standard deviation on a 1D NumPy array

Suppose that you have an array and want to create another array, which's values are equal to standard deviation of first array's 10 elements successively. With the help of for loop, it can be written easily like below code. What I want to do is avoid using for loop for faster execution time. Any suggestions?

Code
a = np.arange(20)
b = np.empty(11)
for i in range(11):
    b[i] = np.std(a[i:i+10])
Run Code Online (Sandbox Code Playgroud)

python iteration performance numpy vectorization

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

仅格式化选定的刻度标签

我是matplotlib的新手,试图找出如何更改仅选定的x刻度标签的格式的方法。为了简单起见,我在下面附上了简单的代码和图表。如何更改仅最后一个x刻度标签的字体颜色(在此示例中为5.0)?

Code
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4, 5], [50, 40, 60, 70, 50])
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

matplotlib python-3.x

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

加快滑动窗口平均计算

我有一些数据(股票数据),需要通过对该数据进行一些计算来操纵它.我用numpy数组做了.Numpy比python内置函数快得多.但是,我的代码的执行时间高于预期.我的代码在下面,我用ipython%timeit函数测试它.结果是这样的:总执行时间是5.44毫秒,第二个"for"循环占用大部分时间3.88毫秒,并且导致该循环中的'np.mean'函数.因此,'np.mean'的替代方案和任何其他加快执行时间的建议都会有所帮助.

data = my_class.Project.all_data["AAP_data"]
data = np.array(data[["High", "Low", "Close"]])

true_range = np.empty((data.shape[0]-1, 1))
for i in range(1, true_range.shape[0]+1):
    true_range[i-1] = max((data[i, 0] - data[i, 1]), (abs(data[i, 0] - data[i-1, 2])),
                          (abs(data[i, 1] - data[i-1, 2])))

average_true_range = np.empty((true_range.shape[0]-13, 1))
for i in range(13, average_true_range.shape[0]+13):
    lastn_tr = true_range[(i-13):(i+1)]
    average_true_range[i-13] = np.mean(lastn_tr)
Run Code Online (Sandbox Code Playgroud)

python arrays performance numpy vectorization

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

Django静态文件404错误

我试图在django项目中找到所有引导文件只在一个文件夹中并引用它们.为了做到这一点,我已经将这些行添加到setting.py:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Run Code Online (Sandbox Code Playgroud)

我的base.html看起来像这样:

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Muplay</title>
    <link rel="stylesheet" type="text/css" href="{% static'css/bootstrap.css' %}">
    <script src="{% static 'js/bootstrap.js' %}"></script>
</head>
<body style="background-color: #F2F2F5">
    {% include 'snippets/nav.html' %}
    <div class="container">
        {% block content %}{% endblock %}
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当我将此base.html扩展到其他html文件时,css和js文件在浏览器中成功加载.但是,问题是,在终端中,django返回404错误如下:

[10/Dec/2017 14:03:27] "GET /static/js/bootstrap.js HTTP/1.1" 404 1759
[10/Dec/2017 14:03:27] "GET /static/css/bootstrap.css HTTP/1.1" 404 1765
Run Code Online (Sandbox Code Playgroud)

为什么django会在浏览器中成功加载这些静态文件时返回404代码?

python static-files bootstrap-4 django-1.11

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

C memcpy 二维数组

我正在尝试使用将一个二维数组复制到另一个memcpy。我的代码:

#include <stdio.h>
#include <string.h>

int print(int arr[][3], int n) {
    for (int r = 0; r < 3; ++r) {
        for (int c = 0; c < n; ++c)
            printf("%d ", arr[r][c]);
        printf("\n");
    }
}

int main() {
    int arr[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };
    int arr_copy[3][3];

    print(arr, 3);
    memcpy(arr_copy, arr, 3);
    print(arr_copy, 3);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

结果:

1 2 3 
4 5 6 
7 8 9 
-1426063359 32726 -1902787872 …
Run Code Online (Sandbox Code Playgroud)

c memcpy multidimensional-array

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

Django 表单 ImageField

我正在尝试为包含 ImageField 的模型建立 CreateView。我可以从 django 管理页面成功上传和显示图像。但是,当我从自己的表单上传图像时,django 不会将图像上传到“upload_to”文件夹。我在下面写我的代码:

模型.py

from django.db import models


class Album(models.Model):
    title = models.CharField(max_length=127)
    artist = models.CharField(max_length=63)
    release_date = models.DateField()
    logo = models.ImageField(blank=True, upload_to='album_logos', default='album_logos/no-image.jpg')

    def __str__(self):
        return self.title
Run Code Online (Sandbox Code Playgroud)

表格.py

from django import forms

from .models import Album
class AlbumCreateForm(forms.ModelForm):

    class Meta:
        model = Album
        fields = [
            'title',
            'artist',
            'release_date',
            'logo'
        ]
Run Code Online (Sandbox Code Playgroud)

视图.py

class AlbumCreateView(CreateView):
    form_class = AlbumCreateForm
    template_name = 'music/album_create.html'
    success_url = '/albums/'
Run Code Online (Sandbox Code Playgroud)

相册_create.html

{% extends 'base.html' %}

{% block content %}
<form method="post">{% csrf_token …
Run Code Online (Sandbox Code Playgroud)

python django django-forms imagefield

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

Django UserCreationForm自定义字段

我正在尝试为用户注册创建表单并添加一些自定义字段。为此,我将UserCretionForm子类化,并添加了django文档中所示的字段。然后,我基于此表单创建了基于函数的视图和模板。现在,我可以成功创建用户,并且该用户已按预期添加到管理面板中。问题是,我无法为该表单的字段添加类和样式。除用户名字段外,小部件不起作用。我在此处添加脚本,以更准确地说明我的问题:

表格

from django import forms
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.contrib.auth.models import User


class SignUpForm(UserCreationForm):
    first_name = forms.CharField(max_length=32, help_text='First name')
    last_name = forms.CharField(max_length=32, help_text='Last name')
    email = forms.EmailField(max_length=64, help_text='Enter a valid email address')

    class Meta(UserCreationForm.Meta):
        model = User
        # I've tried both of these 'fields' declaration, result is the same
        # fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2', )
        fields = UserCreationForm.Meta.fields + ('first_name', 'last_name', 'email',)

        widgets = {
            'username': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Username'}),
            'first_name': forms.TextInput(attrs={'class': 'form-control', …
Run Code Online (Sandbox Code Playgroud)

python authentication django forms-authentication user-registration

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

C++ 编译器不考虑友元类声明

我正在尝试重写教科书(C++ Primer)中显示的程序。这是一个类似电子邮件的小程序,包含两个 mainMessageFolder类。源文件如下:

\n

文件夹.h

\n
#pragma once\n\n#include <set>\n#include <string>\n\n#include "Message.h"\n\nusing std::string;\nusing std::set;\n\n\nclass Folder {\n    friend class Message;\n    friend void swap(Folder&, Folder&);\n\npublic:\n    Folder(const string &fname):\n        name(fname) { }\n    Folder(const Folder&);\n    Folder& operator=(const Folder&);\n    ~Folder();\n\n    void print_debug();\n\nprivate:\n    string name;\n    set<Message*> msgs;\n\n    void add_to_Message(const Folder&);\n    void remove_from_Message();\n\n    void addMsg(Message*);\n    void remMsg(Message*);\n};\n
Run Code Online (Sandbox Code Playgroud)\n

消息.h

\n
#pragma once\n\n#include <string>\n#include <set>\n\nusing std::set;\nusing std::string;\n\nclass Folder;\n\nclass Message {\n    friend class Folder;\n    friend void swap(Message&, Message&);\n\npublic:\n    // folders is implicitly initialized to the empty …
Run Code Online (Sandbox Code Playgroud)

c++ friend private-members

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

Matplotlib twinx适用于不同比例

我正在使用matplotlib twinx在同一轴上绘制多个变量的图形。但是我有一个问题,我找不到解决方案。为简单起见,我在下面附加了少量代码和该代码绘制的图形。
在此图片中,我需要将那些条形图显示在轴的底部,如图2所示。但是在图片2中,ax1t的yticks保持不变。我还需要将它们显示在底部。我怎样才能做到这一点?

码:

import matplotlib.pyplot as plt
import numpy as np

fig, ax1 = plt.subplots()
ax1.plot([4, 2, 8, 6, 4, 7, 3, 5])
ax1t = ax1.twinx()
ax1t.bar(np.arange(8), [45, 42, 55, 36, 58, 45, 48, 62], alpha=0.4)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

图片2 在此处输入图片说明

python matplotlib python-3.x

-2
推荐指数
1
解决办法
2847
查看次数