小编kaz*_*ase的帖子

Matplotlib:子图之间的中心刻度标签

默认情况下,刻度标签在它们所属的子图轴上对齐。是否可以对齐标签,使它们位于两个子图之间的中心?

import numpy as np
import matplotlib.pyplot as plt

data = [7, 2, 3, 0]
diff = [d - data[0] for d in data]
y = np.arange(len(data))

ax1 = plt.subplot(1, 2, 1)
ax1.barh(y, diff)
ax1.set_yticks(y + 0.4)
ax1.yaxis.set_major_formatter(matplotlib.ticker.NullFormatter())

ax2 = plt.subplot(1, 2, 2)
ax2.barh(y, data)
ax2.set_yticks(y + 0.4)
ax2.set_yticklabels(['reference', 'something', 'something else', 'nothing', ])

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

标签与右侧子图对齐

python matplotlib

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

为什么阴影不会释放借来的参考?

看起来阴影变量不会释放它所持有的借来的引用.以下代码无法编译:

fn main() {
    let mut a = 40;
    let r1 = &mut a;
    let r1 = "shadowed";
    let r2 = &mut a;
}
Run Code Online (Sandbox Code Playgroud)

带有错误消息:

error[E0499]: cannot borrow `a` as mutable more than once at a time
 --> src/main.rs:5:19
  |
3 |     let r1 = &mut a;
  |                   - first mutable borrow occurs here
4 |     let r1 = "shadowed";
5 |     let r2 = &mut a;
  |                   ^ second mutable borrow occurs here
6 | }
  | - first …
Run Code Online (Sandbox Code Playgroud)

rust

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

graphviz在决策树的每个节点内呈现的值是什么意思?

在此处输入图片说明

对于上面的图像,使用的AdaBoostClassifier库scipygraphviz我能够创建此子树视觉效果,我需要帮助来解释每个节点中的值吗?例如,“ gini”是什么意思?“样本”和“值”字段的意义是什么?属性F5 <= 0.5是什么意思?

这是我的代码(我在jupyter笔记本中全部完成了此操作):

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
%matplotlib inline

f = open('dtree-data.txt')
d = dict()
for i in range(1,9):
    key = 'F' + str(i)
    d[key] = []
d['RES'] = []
for line in f:
    values = [(True if x == 'True' else False) for x in line.split()[:8]]
    result = line.split()[8]
    d['RES'].append(result)
    for i in range(1, 9):
        key = 'F' + str(i)
        d[key].append(values[i-1]) …
Run Code Online (Sandbox Code Playgroud)

python scipy pygraphviz scikit-learn

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

基类和派生类中的相同数据成员

我是C++编程的新手,我正在阅读继承概念,我对继承概念有疑问,即如果基类和派生类具有相同的数据成员会发生什么.还请仔细阅读我的代码如下:

#include "stdafx.h"
#include <iostream>
using namespace std;

class ClassA
{
   protected :
       int width, height;
   public :
       void set_values(int x, int y)
       {
           width = x;
           height = y;
       }
};
class ClassB : public ClassA
{
    int width, height;
    public :
        int area()
        {
            return (width * height);
        }
};

int main()
{
    ClassB Obj;
    Obj.set_values(10, 20);
    cout << Obj.area() << endl;
    return 0;
 }
Run Code Online (Sandbox Code Playgroud)

在上面我声明了与Base类数据成员同名的数据成员,并且我set_values()使用派生的Class Object 调用该函数来初始化数据成员widthheight.

当我调用该area()函数时,为什么它返回一些垃圾值而不是返回正确的值.只有当我声明与派生类中的基类数据成员具有相同名称的数据成员时才会发生这种情况.如果我删除派生类中声明的数据成员,它工作正常.那么派生类中的声明有什么问题?请帮我.

c++ inheritance

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

call / cc如何处理“ Lisp in Small Pieces”中的CPS转换?

Lisp in Small Pieces》一书展示了从Scheme到延续通过风格的转变(第5.9.1章,适用于有此书的读者)。转换代表lambda形式的延续,并且call/cc应该等同于简单形式(lambda (k f) (f k k))

我不明白这是怎么工作的,因为在函数的应用和延续之间没有区别。

这是从应用程序以外的所有内容中剥离出来的转换版本(完整版本可以在gist中找到):

(define (cps e)
  (if (pair? e)
      (case (car e)
        ; ...
        (else (cps-application e)))
      (lambda (k) (k `,e))))

(define (cps-application e)
  (lambda (k)
    ((cps-terms e)
     (lambda (t*)
       (let ((d (gensym)))
         `(,(car t*) (lambda (,d) ,(k d))
                     . ,(cdr t*)))))))

(define (cps-terms e*)
  (if (pair? e*)
      (lambda (k)
        ((cps (car e*))
         (lambda (a)
           ((cps-terms (cdr e*))
            (lambda (a*)
              (k (cons a a*))))))) …
Run Code Online (Sandbox Code Playgroud)

lisp scheme continuation-passing

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

如何删除列表中的所有奇数序项?

我搜索了stackoverflow,看到有人写这个:

[item for item in yourlist if item % 2]
Run Code Online (Sandbox Code Playgroud)

它对我不起作用.

我的代码是这样的:

x = ['apple','fruit','orange','fruit','lemon','fruit']
for i in range(0,len(x),2):
    if i%2 !=0:
        x.pop(i)
print x
Run Code Online (Sandbox Code Playgroud)

这也行不通.它说流行指数超出范围

怎么做?

python list

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

python itertool组合列表不完整

我有一个包含 11 个元素的列表,我需要其中长度为 4 的所有可能的元组。于是我在Itertools中找到了这个函数combinations

然而,它只提供 210 个元组,而不是 11^4 = 14641。我检查了该print函数,发现其中许多元组丢失了。

我能做什么,或者有什么问题?

atom = [0, 5, 6, 12, 10, 13, 11, 9, 1, 2]
atoms = list(itertools.combinations(atom,4))
Run Code Online (Sandbox Code Playgroud)

python combinations python-itertools

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