小编Kew*_*ewl的帖子

理解*x,= lst

我正在阅读一些旧代码,试图理解它的作用,我偶然发现了这个奇怪的声明:

*x ,= p
Run Code Online (Sandbox Code Playgroud)

p是这个上下文中的列表.我一直试图弄清楚这句话的作用.据我所知,它只是设置x为的值p.例如:

p = [1,2]
*x ,= p    
print(x)
Run Code Online (Sandbox Code Playgroud)

只是给

[1, 2]
Run Code Online (Sandbox Code Playgroud)

这有什么不同x = p吗?知道这个语法在做什么吗?

python python-3.x iterable-unpacking

70
推荐指数
3
解决办法
4994
查看次数

检查值是否在数据框中

我正在尝试检查特定值是否在数据框中的任何位置.

我知道%in%操作员应该允许我这样做,但它似乎没有按照我期望的方式应用于整个数据框:

A = data.frame(B=c(1,2,3,4), C=c(5,6,7,8))
1 %in% A

[1] FALSE
Run Code Online (Sandbox Code Playgroud)

但是,如果我将其应用于特定列,则值将按照我期望的方式运行:

1 %in% A$C

[1] TRUE
Run Code Online (Sandbox Code Playgroud)

检查值是否在数据框中的任何位置的正确方法是什么?

r dataframe

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

Python整个反向列表指定索引

我有一个列表,我想以相反的顺序获取最后几个元素:

lst = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我可以反转列表lst[::-1]并反转整个列表.但我希望反向列表只能达到某个索引.我可以指定一个索引:

ind = 1
lst[:ind-1:-1]
Run Code Online (Sandbox Code Playgroud)

得到:

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

这是指向索引的原始列表,顺序相反.这适用于任何索引> 0.但如果ind为0(意味着应以相反的顺序返回整个列表),这会导致问题:

ind = 0
lst[:ind-1:-1]
Run Code Online (Sandbox Code Playgroud)

收益:

[]
Run Code Online (Sandbox Code Playgroud)

因为我的结局与我的开头(-1)相同.我的预期/期望输出将是[4, 3, 2, 1]

我知道一个简单的解决方法是将一个if语句用于捕获ind为0的情况,或者分两步执行(index然后反向),但感觉这应该可以用Python中的索引系统来实现.我错了吗?

python list

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

XGBoost 使用sklearn API 获取predict_contrib?

在 Python 中,XGBoost 允许您使用其 Booster 类或使用其 sklearn API ( http://xgboost.readthedocs.io/en/latest/python/python_api.html ) 进行训练/预测。我正在使用 sklearn API,并且想要使用pred_contribsXGBoost 的功能。我希望这能起作用,但事实并非如此:

model = xgb.XGBClassifier().fit(X_train, y_train)
pred = model.predict_proba(X_test, pred_contribs=True)
Run Code Online (Sandbox Code Playgroud)

看起来pred_contribs只是Booster类预测函数的一个参数。如何通过 sklearn API 使用此参数?或者是否有一个简单的解决方法可以在使用 sklearn API 进行训练后获取预测贡献者?

python scikit-learn xgboost

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

生成范围内的随机数,不包括某些数字

在Python中是否有一种简单的方法可以生成一个范围内的随机数,但不包括该范围内的某些数字子集?

例如,我知道您可以生成0到9之间的随机数:

from random import randint
randint(0,9)
Run Code Online (Sandbox Code Playgroud)

如果我有一个列表,例如exclude=[2,5,7]我不想被退回怎么办?

python random

6
推荐指数
3
解决办法
7982
查看次数

检查数据系列是否为字符串

我想检查数据框中的列是否包含字符串.我原以为这可以通过检查dtype来完成,但事实并非如此.包含字符串的pandas系列只有dtype'object',它也用于其他数据结构(如列表):

df = pd.DataFrame({'a': [1,2,3], 'b': ['Hello', '1', '2'], 'c': [[1],[2],[3]]})

df = pd.DataFrame({'a': [1,2,3], 'b': ['Hello', '1', '2'], 'c': [[1],[2],[3]]})
print(df['a'].dtype)
print(df['b'].dtype)
print(df['c'].dtype)
Run Code Online (Sandbox Code Playgroud)

生产:

int64
object
object
Run Code Online (Sandbox Code Playgroud)

有没有办法检查列是否只包含字符串?

python pandas

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

在keras中的model.compile中使用mectrics时,报告ValueError:('Unknown metric function',':f1score')

我正在尝试运行LSTM,当我使用下面的代码时:

model.compile(optimizer='rmsprop', loss='binary_crossentropy',
              metrics=['accuracy', 'f1score', 'precision', 'recall'])
Run Code Online (Sandbox Code Playgroud)

它返回:

ValueError: ('Unknown metric function', ':f1score').
Run Code Online (Sandbox Code Playgroud)

我完成了我的搜索,发现了这个网址:https: //github.com/fchollet/keras/issues/5400

此url中"model.compile"部分中的"metrics"与我的完全相同,并且不返回任何错误.

metrics keras

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

wordcloud2 闪亮的输出创建额外的小部件

使用 wordcloud2 cran 页面( https://cran.r-project.org/web/packages/wordcloud2/vignettes/wordcloud.html )上的 rshiny 示例,我在 wordcloud 下方得到了一个额外的小框。每当我使用 wordcloud2 包的 rshiny 功能时就会发生这种情况:

在此输入图像描述

生成这个的代码只是:

library(wordcloud2)
# Global variables can go here
n <- 1

# Define the UI
ui <- bootstrapPage(
  numericInput('size', 'Size of wordcloud', n),
  wordcloud2Output('wordcloud2')
)


# Define the server code
server <- function(input, output) {
  output$wordcloud2 <- renderWordcloud2({
    # wordcloud2(demoFreqC, size=input$size)
    wordcloud2(demoFreq, size=input$size)
  })
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

r word-cloud shiny

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

使用 group_by 连接字符串并在 r 中汇总

我正在尝试根据分组将一列字符串连接在一起。我使用的代码在我看来与其他人使用的代码相同(例如使用 dplyr 连接列)但它不起作用,我不知道为什么。

a = tibble(
       x = c(1,2,1,2),
       z = c('1','2','3','4')
   )

a %>% group_by(x) %>% summarise(val=paste(z, collapse=" "))
Run Code Online (Sandbox Code Playgroud)

给出:

   val
1 1 2 3 4
Run Code Online (Sandbox Code Playgroud)

就好像只有一组一样。然而,当我执行不同的功能时,分组工作正常:

a %>% group_by(x) %>% tally()
# A tibble: 2 × 2
      x     n
  <dbl> <int>
1     1     2
2     2     2
Run Code Online (Sandbox Code Playgroud)

知道可能是什么问题吗?

r dplyr

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

Pandas列中所有字数的总和

我有一个包含字符串的pandas列.我想得到整个专栏中所有单词的字数.没有循环遍历每个值,最好的方法是什么?

df = pd.DataFrame({'a': ['some words', 'lots more words', 'hi']})
Run Code Online (Sandbox Code Playgroud)

运行时df['a'],你应该得到6

python pandas

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

sqlalchemy无法连接,但cx_oracle成功

我正在尝试使用Python连接到Oracle服务器。我可以在cx_Oracle中使用它,但是当我尝试使用sqlalchemy连接时会失败。cx_Oracle代码:

import cx_Oracle
import pandas as pd

cx_connection = cx_Oracle.connect(user+'/' + pw + '@' + host + ':' + port + '/' + db)
df = pd.read_sql(my_query, cx_connection)
Run Code Online (Sandbox Code Playgroud)

根据查询执行并从数据库返回数据。如果我尝试使用sqlalchemy进行相同的连接:

import sqlalchemy

engine = sqlalchemy.create_engine('oracle+cx_oracle://' + user + ':' + pw + '@' + host + ':' + port + '/' + db)
sqlalchemy_connection = engine.connect()
Run Code Online (Sandbox Code Playgroud)

我在最后一行收到错误:

DatabaseError:(cx_Oracle.DatabaseError)ORA-12505:TNS:listener当前不知道连接描述符中给出的SID(有关此错误的背景,网址为:http : //sqlalche.me/e/4xp6

知道是什么问题吗?sqlalchemy不只是使用cx_Oracle吗?有什么解决方法可以将cx_Oracle连接赋予sqlalchemy吗?

python cx-oracle sqlalchemy

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