小编Tan*_*guy的帖子

在Python 3脚本中打印(__ doc __)

我无法弄清楚print(__doc__)脚本开头的操作是什么,就像在这个Scikit示例中一样.

我一直在谷歌中寻找Python文档字符串,__doc__函数中提供一些文档似乎很有用.但我看不到__doc__脚本中间做了什么.

python docstring

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

scipy csr_matrix:了解indptr

每过一段时间,我去操纵csr_matrix,但我总是忘了怎样的参数indices,并indptr共同构建一个稀疏矩阵.

我正在寻找一个清晰直观的解释,说明在使用符号定义稀疏矩阵时如何与参数和参数进行indptr交互.dataindicescsr_matrix((data, indices, indptr), [shape=(M, N)])

我可以从scipy文档中看到该data参数包含所有非零数据,并且该indices参数包含与该数据相关联的列(因此,在文档中给出的示例中indices等于col).但是我们怎么能用清晰的语言解释indptr参数呢?

python scipy sparse-matrix

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

从Scikit(Python)中的管道检索中间特征

我使用的管道非常类似于此示例中给出的管道:

>>> text_clf = Pipeline([('vect', CountVectorizer()),
...                      ('tfidf', TfidfTransformer()),
...                      ('clf', MultinomialNB()),
... ])
Run Code Online (Sandbox Code Playgroud)

我用来GridSearchCV在参数网格上找到最佳估算器.

不过,我想获得我的训练与设定的列名get_feature_names()的方法CountVectorizer().如果没有CountVectorizer()在管道外实施,这可能吗?

python pipeline scikit-learn

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

Python Pandas:将参数传递给agg()中的函数

我试图通过使用不同类型的函数和参数值来减少pandas数据框中的数据.但是,我没有设法更改聚合函数中的默认参数.这是一个例子:

>>> df = pd.DataFrame({'x': [1,np.nan,2,1],
...                    'y': ['a','a','b','b']})
>>> df
     x  y
0  1.0  a
1  NaN  a
2  2.0  b
3  1.0  b
Run Code Online (Sandbox Code Playgroud)

这是一个聚合函数,我想测试它的不同值b:

>>> def translate_mean(x, b=10):
...   y = [elem + b for elem in x]
...   return np.mean(y)
Run Code Online (Sandbox Code Playgroud)

在下面的代码中,我可以使用此函数的默认b值,但我想传递其他值:

>>> df.groupby('y').agg(translate_mean)
      x
y
a   NaN
b  11.5
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python group-by aggregate pandas

5
推荐指数
3
解决办法
3762
查看次数

装饰函数有没有办法引用装饰器创建的对象?

我想知道装饰函数是否有办法引用装饰器包装器创建的对象.当我想要使用装饰器时,我的问题出现了:

  1. 制作一个用子图创建图形的包装器
  2. 在包装器内执行装饰函数,这将添加一些图
  3. 最后将数字保存在包装器中

但是,修饰函数需要引用包装器创建的图形.装饰函数如何引用该对象?我们是否必须诉诸全局变量?

这是一个简短的例子,我在装饰函数中引用了一个在包装器中创建的变量(但是我没有设法在没有使用全局变量的情况下执行此操作):

def my_decorator(func):
    def my_decorator_wrapper(*args, **kwargs):
        global x
        x = 0
        print("x in wrapper:", x)
        return func(*args, **kwargs)
    return my_decorator_wrapper

@my_decorator
def decorated_func():
    global x
    x += 1
    print("x in decorated_func:", x)

decorated_func()
# prints:
# x in wrapper: 0
# x in decorated_func: 1
Run Code Online (Sandbox Code Playgroud)

我知道这很容易在课堂上完成,但我出于好奇而问这个问题.

python python-decorators

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

Java - 属性继承示例

我对在 Coursera Java 课程的测验中发现的这个继承示例感到困惑:

  • B类是A类的子类
  • B类getPrefix()方法覆盖类'A方法
  • B 类number属性覆盖类的 A 属性
class ClassA {
    protected int number;

    public ClassA() {
        number = 20;
    }

    public void print() {
        System.out.println(getPrefix() + ": " + number);
    }

    protected String getPrefix() {
        return "A";
    }
}

class ClassB extends ClassA {
    protected int number = 10;

    protected String getPrefix() {
        return "B";
    }
}



public class Quizz {

    public static void main(String[] args) {

        ClassB b = new ClassB();
        b.print(); …
Run Code Online (Sandbox Code Playgroud)

java inheritance

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

理解Python中正则表达式的原始字符串

我有很多充满换行符的文本文件,我正在 python 3.4 中解析它们。我正在寻找换行符,因为它们将我的文本分成不同的部分。这是一个文本示例:

\n\n
text = \'avocat  ;\\n\\n       m. x\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我 na\xc3\xafvely 开始在正则表达式(RE)中寻找带有 \' \\n\' 的换行符,而不认为反斜杠 \' \\\' 是转义字符。然而,事实证明这工作得很好:

\n\n
>>> import re\n\n>>> pattern1 = \'\\n\\n\'\n>>> re.findall(pattern1, text)\n[\'\\n\\n\']\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,我明白我应该使用双反斜杠来寻找一个反斜杠。这也运行得很好:

\n\n
>>> pattern2 = \'\\\\n\\\\n\'\n>>> re.findall(pattern2, text)\n[\'\\n\\n\']\n
Run Code Online (Sandbox Code Playgroud)\n\n

但在另一个线程上,我被告知使用原始字符串而不是常规字符串,但这种格式无法找到我正在寻找的换行符:

\n\n
>>> pattern3 = r\'\\\\n\\\\n\'\n>>> pattern3\n\'\\\\\\\\n\\\\\\\\n\'\n>>> re.findall(pattern3, text)\n[]\n
Run Code Online (Sandbox Code Playgroud)\n\n

你能帮我一下吗?我有点困惑我应该使用什么 RE 之王才能正确匹配换行符。

\n

python regex newline rawstring

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

使用OR运算符的Python正则表达式

我试图用正则表达式(RE)解析大量的文本文件样本.我试图从这些文件中提取包含'vu'的文本部分,并以换行符'\n'结尾.

模式因文件而异,因此我尝试使用OR运算符在文件中查找RE的组合.但是,我找不到自动化代码的方法,以便re.findall()函数查找RE的组合.

这是我试图解决这个问题的一个例子,但显然我仍然无法在re.findall()中评估我的正则表达式和OR运算符:

import re

def series2string(myserie) :
    myserie2 = ' or '.join(serie for serie in myserie)
    return myserie2

def expression(pattern, mystring) : 
    x = re.findall(pattern, mystring)
    if len(x)>0:
        return 1
    else:
        return 0

#text example
text = "\n\n    (troisième chambre)\n    i - vu la requête, enregistrée le 28 février 1997 sous le n° 97nc00465, présentée pour m. z... farinez, demeurant ... à dommartin-aux-bois (vosges), par me y..., avocat ;\n" …
Run Code Online (Sandbox Code Playgroud)

python regex or-operator

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