小编Stu*_*ent的帖子

为什么正则表达式如此具有争议性?

在探索正则表达式(也称为RegEx-es)时,有许多人似乎将正则表达式视为圣杯.看起来如此复杂的东西 - 只是必须回答任何问题.他们倾向于认为使用正则表达式可以解决所有问题.

另一方面,也有许多人试图不惜一切代价避免使用正则表达式.他们试图找到解决正则表达式的方法并接受额外的编码只是为了它,即使正则表达式是一个更紧凑的解决方案.

为什么正则表达式被认为是如此有争议?是否存在关于它们如何工作的普遍误解?或者可能是一个普遍的信念,正则表达式通常很慢?

regex

209
推荐指数
13
解决办法
4万
查看次数

蟒蛇n克,四,五,六克?

我正在寻找一种将文本分成n-gram的方法.通常我会做类似的事情:

import nltk
from nltk import bigrams
string = "I really like python, it's pretty awesome."
string_bigrams = bigrams(string)
print string_bigrams
Run Code Online (Sandbox Code Playgroud)

我知道nltk只提供bigrams和trigrams,但有没有办法将我的文本分成4克,5克甚至100克?

谢谢!

python string nltk n-gram

115
推荐指数
7
解决办法
12万
查看次数

如何在IPython中将变量传递给magic'run'函数

我想做类似以下的事情:

In[1]: name = 'long_name_to_type_every_now_and_then.py'

In[2]: %run name
Run Code Online (Sandbox Code Playgroud)

但这实际上是试图运行'name.py',这不是我想要做的.

是否有将变量转换为字符串的一般方法?

类似于以下内容:

In[3]: %run %name%
Run Code Online (Sandbox Code Playgroud)

python ipython ipython-magic

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

label-encoder编码缺失值

我使用标签编码器将分类数据转换为数值.

LabelEncoder如何处理缺失值?

from sklearn.preprocessing import LabelEncoder
import pandas as pd
import numpy as np
a = pd.DataFrame(['A','B','C',np.nan,'D','A'])
le = LabelEncoder()
le.fit_transform(a)
Run Code Online (Sandbox Code Playgroud)

输出:

array([1, 2, 3, 0, 4, 1])
Run Code Online (Sandbox Code Playgroud)

对于上面的示例,标签编码器将NaN值更改为类别.我怎么知道哪个类别代表缺失值?

python pandas scikit-learn

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

NLTK Context Free Grammar Genaration

我正在研究一个带有Unicode字符的非英语解析器.为此,我决定使用NLTK.

但它需要一个预定义的无上下文语法,如下所示:

  S -> NP VP
  VP -> V NP | V NP PP
  PP -> P NP
  V -> "saw" | "ate" | "walked"
  NP -> "John" | "Mary" | "Bob" | Det N | Det N PP
  Det -> "a" | "an" | "the" | "my"
  N -> "man" | "dog" | "cat" | "telescope" | "park"
  P -> "in" | "on" | "by" | "with" 
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我应该使用基于规则的语法来最小化硬编码.例如,我可以假设以-ed-ing结尾的任何单词作为动词.所以它应该适用于任何给定的上下文.

如何将这些语法规则提供给NLTK?或者使用有限状态机动态生成它们?

python parsing nlp nltk context-free-grammar

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

Sci-Kit学习SGD Algo时出错 - "数组包含NaN或无穷大"

我收到一条错误,指出"数组包含NaN或无穷大".我检查了我的数据,无论是火车/测试缺失值,都没有遗漏.

我可能对"数组包含NaN或无穷大"的含义有错误的解释.

import numpy as np
from sklearn import linear_model
from numpy import genfromtxt, savetxt

def main():
    #create the training & test sets, skipping the header row with [1:]
    dataset = genfromtxt(open('C:\\Users\\Owner\\training.csv','r'), delimiter=',')[0:50]    
    target = [x[0] for x in dataset]
    train = [x[1:50] for x in dataset]
    test = genfromtxt(open('C:\\Users\\Owner\\test.csv','r'), delimiter=',')[0:50]

    #create and train the SGD
    sgd = linear_model.SGDClassifier()
    sgd.fit(train, target)
    predictions = [x[1] for x in sgd.predict(test)]

    savetxt('C:\\Users\\Owner\\Desktop\\preds.csv', predictions, delimiter=',', fmt='%f')

if __name__=="__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

我认为数据类型可能会抛出一个循环算法(它们是浮点数).

我知道SGD可以处理浮点数,所以我不确定这个设置是否要求我声明数据类型.

如下列之一:

>>> dt …
Run Code Online (Sandbox Code Playgroud)

python numpy machine-learning nan scikit-learn

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

如何将列名称添加到pandas数据框中的单元格?

如何获取正常的数据框,如下所示:

d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
df

    col1    col2
0   1   3
1   2   4
Run Code Online (Sandbox Code Playgroud)

并生成一个数据框,其中列名称添加到框架中的单元格中,如下所示:

d = {'col1': ['col1=1', 'col1=2'], 'col2': ['col2=3', 'col2=4']}
df = pd.DataFrame(data=d)
df

    col1    col2
0   col1=1  col2=3
1   col1=2  col2=4
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

python-3.x pandas

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

如何让文本对象与 sklearn 分类器管道一起使用?

目标:当模型输入为整数、浮点数和对象(根据熊猫数据框)时,使用 sklearn 预测给定类集的概率。

我正在使用来自 UCI Repository 的以下数据集: Auto Dataset

我创建了一个几乎可以工作的管道:

# create transformers for the different variable types.

from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
import pandas as pd
import numpy as np

data = pd.read_csv(r"C:\Auto Dataset.csv")
target = 'aspiration'
X = data.drop([target], axis = 1)
y = data[target]

integer_transformer = Pipeline(steps = [
   ('imputer', SimpleImputer(strategy = 'most_frequent')),
   ('scaler', StandardScaler())])

continuous_transformer = Pipeline(steps = [
   ('imputer', SimpleImputer(strategy = 'most_frequent')),
   ('scaler', StandardScaler())])

categorical_transformer = …
Run Code Online (Sandbox Code Playgroud)

python machine-learning python-3.x pandas scikit-learn

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

使用Python如何在Pandas数据框的每一行的范围内生成随机数?

目标:为构造字段“出生”内的每一行创建一个唯一且随机的数字。

import pandas as pd
import numpy as np

df1=pd.DataFrame.from_items([('A', [1, 2, 3]), ('B', [4, 5, 6])])
df1['Birth']= random.randrange(1905,1995, len(df1))
df1
Run Code Online (Sandbox Code Playgroud)

上面的代码为所有行生成一个随机数,如下所示:

    A   B   Birth
0   1   4   1974
1   2   5   1974
2   3   6   1974
Run Code Online (Sandbox Code Playgroud)

相反,我对以下内容感兴趣:

    A   B   Birth
0   1   4   1904
1   2   5   1978
2   3   6   1934
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

python random numpy pandas

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

是否可以在 Python 中将 SQLite3 与 Microsoft SQL Server 一起使用?

我正在尝试使用 SQLite3 模块连接到 Microsoft SQL Server。

一切似乎都被识别了,但无论出于何种原因它都无法识别我的列或表。

import sqlite3
con = sqlite3.connect('V7.0.6_X2_857I.sql')
cur = con.cursor()
cur.execute("""SELECT * FROM TS857_5400""")
all = cur.fetchall()
print one
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了这个错误:

---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
<ipython-input-39-04a8789e04a7> in <module>()
      3 con = sqlite3.connect('V7.0.6_X2_857I.sql')
      4 cur = con.cursor()
----> 5 cur.execute("""SELECT * FROM TS857_5400""")
      6 all = cur.fetchall()
      7 print one

OperationalError: no such table: TS857_5400
Run Code Online (Sandbox Code Playgroud)

我知道这个表存在,所以我想知道这是否是声明的连接字符串的问题或 SQLite3(使用 SQL Server)的限制。

先感谢您。

python sql-server sqlite ipython

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