看来,corrcoef
从numpy
抛出RuntimeWarning当一个恒定的列表传递给corrcoef()
函数,例如下面的代码抛出一个警告:
import numpy as np
X = [1.0, 2.0, 3.0, 4.0]
Y = [2, 2, 2, 2]
print(np.corrcoef(X, Y)[0, 1])
Run Code Online (Sandbox Code Playgroud)
警告 :
/usr/local/lib/python3.6/site-packages/numpy/lib/function_base.py:3003: RuntimeWarning: invalid value encountered in true_divide
c /= stddev[:, None]
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么当其中一个列表是常量时抛出此错误,以及如何在将常量列表传递给函数时防止此错误.
我不明白示例文档中的 customprompt 如何工作:https://python.langchain.com/en/latest/modules/chains/index_examples/qa_with_sources.html
提示对象定义为:
PROMPT = PromptTemplate(template=template, input_variables=["summaries", "question"])
期待两个输入摘要和问题
但是,仅在问题(作为查询)中传递内容,而不是摘要中传递的内容
chain = load_qa_with_sources_chain(OpenAI(temperature=0), chain_type="stuff", prompt=PROMPT)
query = "What did the president say about Justice Breyer"
chain({"input_documents": docs, "question": query}, return_only_outputs=True)
where docs = docsearch.similarity_search(query)
Run Code Online (Sandbox Code Playgroud)
问题 1(针对): input_documentsqa_with_sources
如何映射到摘要?
同样,我不清楚链接 https://python.langchain.com/en/latest/modules/chains/index_examples/summarize.html上的文档
prompt_template = """Write a concise summary of the following:
{text}
CONCISE SUMMARY IN ITALIAN:"""
PROMPT = PromptTemplate(template=prompt_template, input_variables=["text"])
chain = load_summarize_chain(OpenAI(temperature=0), chain_type="map_reduce", return_intermediate_steps=True, map_prompt=PROMPT, combine_prompt=PROMPT)
chain({"input_documents": docs}, return_only_outputs=True)
Run Code Online (Sandbox Code Playgroud)
更多问题(针对summarize
): 2. docs
是如何映射到text …
我使用 python 在 matplotlib 中创建了一个图表,x 轴是一周中的几天(周一至周日)。但是,在绘制数据时,x 轴并未排列在周一至周日。
有什么方法可以重新排序 x 轴以使其格式化?
或者有什么方法可以重新排序数据集?这是一个使用熊猫数据框读取的 csv 文件
示例数据:(存在于 csv 中:'./data/Days_Summary.csv')
Day Value
Monday 56
Tuesday 23
Wednesday 34
Thursday 56
Friday 58
Saturday 70
Sunday 43
Run Code Online (Sandbox Code Playgroud)
代码:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df=pd.read_csv('./data/Days_Summary.csv')
days_values=df.groupby(['day'])['day'].count().plot(kind='bar')
plt.xlabel('Day')
plt.ylabel('Values')
plt.show()
Run Code Online (Sandbox Code Playgroud) 这是我从教程中得到的
# Data Preprocessing
# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Importing the dataset
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 3].values
# Taking care of missing data
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)
imputer = imputer.fit(X[:, 1:3])
X[:, 1:3] = imputer.transform(X[:, 1:3])
# Encoding categorical data
# Encoding the Independent Variable
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X …
Run Code Online (Sandbox Code Playgroud) 原生Pandas Timedelta()
(带版本0.20.3
)无法转换为特定频率astype()
,尽管文档说它应该是可能的.我想弄清楚我错过了什么.
来自Timedelta文档:
Timedelta系列,TimedeltaIndex和Timedelta标量可以通过除以另一个timedelta 或通过输入特定的timedelta类型转换为其他"频率" .
确实,我可以通过分裂与另一个timedelta进行转换:
import pandas as pd
pd.__version__
# 0.20.3
day = pd.Timedelta("1 day")
day / pd.Timedelta(1, "h")
# 24.0
Run Code Online (Sandbox Code Playgroud)
但astype()
失败了:
day.astype('timedelta64[h]')
# AttributeError: 'Timedelta' object has no attribute 'astype'
Run Code Online (Sandbox Code Playgroud)
文档中的示例实际上并未使用pd.Timedelta()
,这似乎是问题的一部分.相反,它使用Series(date_range)
减法和datetime.timedelta
(这似乎有点搞笑,因为有一个本地熊猫Timedelta()
).
# This example is used in the Timedelta docs.
import datetime
td = pd.Series(pd.date_range('20130101', periods=4)) - pd.Series(pd.date_range('20121201', periods=4))
td[2] += datetime.timedelta(minutes=5, seconds=3)
td[3] = np.nan
td
0 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试合并这样的数组:
如果:
a = [1.2, 1, 3, 4]
b = [0.0 , 0.0]
c = [0.0 , 0.0]
a = a + b + c
Run Code Online (Sandbox Code Playgroud)
那么结果应该是:
[0.0 , 0.0 , 1.2 , 1 ,3 ,4 , 0.0 ,0.0]
Run Code Online (Sandbox Code Playgroud)
我所做的是提取数组的直方图并将其与普通数组合并。
x1, bins, patch = plt.hist(array1, bins = round(max(array1) - min(array1)))
x1 = b + x1 + c
but the form of x1 is
x1 = [ 2. 0. 0. 1. 0. 2. 5. 0. 1. 1. 0. 1. 5.]
Run Code Online (Sandbox Code Playgroud)
也许这会导致这样的错误
ValueError:操作数无法与形状一起广播 …
我想用单词而不是索引值来标记.id
输出中的列条目map_dfr
,但我的输入未命名(这就是接受字符串值的方式map
.id
)。
在这种情况下,将名称映射到字段的最佳方法是什么.id
?
示例数据:
n <- 20
df <- data.frame(foo_1=rnorm(n), foo_2=rnorm(n), foo_3=rnorm(n),
foo_a=runif(n), t_foo=runif(n),
bar_1=rnorm(n), bar_2=rnorm(n), bar_3=rnorm(n),
bar_a=runif(n), t_bar=runif(n))
Run Code Online (Sandbox Code Playgroud)
和foo
都是bar
心理测量量表,我想使用 来衡量每个量表的可靠性psych::alpha()
。
唯一相关的列具有命名模式foo_<int>
(对于比例foo
)或bar_<int>
比例bar
(因此下面的正则表达式匹配)。
实际上,我有许多音阶,以及构成每个音阶的许多列。所以我认为map
可能是进行计算的好方法,如下所示:
require(psych)
require(tidyverse)
categories <- c("foo", "bar")
categories %>%
map_dfr(~df %>%
select(matches(paste0("^",.x,"_?\\d"))) %>%
do(psych::alpha(., check.keys=TRUE)$total), .id="scale") %>%
select(scale, raw_alpha, std.alpha)
scale raw_alpha std.alpha
1 1 0.2275679 0.2791238
2 2 0.4141225 0.4130054
Run Code Online (Sandbox Code Playgroud)
但我想 …
我正在学习如何创建CNN模型,并认为Kaggle举办了一场有趣的比赛来帮助我学习它.
他们提供了一个类似JSON的大型(BSON)文件,大约50GB,我正在尝试处理它.我正在尝试使用Keras模块训练卷积神经网络.在文件中,我迭代地读取具有(180,180,3)的阵列结构的图像数据.整个文件包含大约7,000,000个图像,因此最终的数组结构看起来像(7000000,180,180,3).但是,我无法将所有这些数据读入内存,所以我的目标是一次读取100,000个图像以适应神经网络,保存模型的权重,删除数组以释放内存,然后继续阅读接下来将100,000个图像放入新阵列中以重新拟合先前训练的模型.我会迭代地这样做,直到我到达最后一张图片.
我最初尝试使用'np.append()'来迭代地将每个图像阵列附加在一起,但是,这花了很多时间,因为我只通过25,000个图像,导致阵列结构(25000,180,180, 3),在10个小时内,由于尺寸的原因,它在接近结束时非常慢.
然后,我尝试使用pandas数据帧结构使用不同的方法.我将每个(1,180,180,3)阵列附加到每个单元格中.我能够使用这种方法在大约20分钟内迭代100,000张图像(大部分代码都是通过Kaggle提供的 - https://www.kaggle.com/inversion/processing-bson-files)但我在下面进行了修改:
# Simple data processing
from bson.json_util import dumps
data = bson.decode_file_iter(open('train.bson', 'rb'))
prod_to_category = dict()
i = 0
j = 1000
# Loop through dataset
for c, d in enumerate(data):
product_id = d['_id']
category_id = d['category_id'] # This won't be in Test data
prod_to_category[product_id] = category_id
i+=1
# Create a counter to check how many records have been iterated through
if (i == 1):
print (i, "records loaded")
print(picture_1.shape)
j+=1000
for e, …
Run Code Online (Sandbox Code Playgroud) 我正在使用该psych
包进行因子分析。我想在fa()
对象中或使用fa.diagram()
.
例如,玩具数据:
require(psych)
n <- 100
choices <- 1:5
df <- data.frame(a=sample(choices, replace=TRUE, size=n),
b=sample(choices, replace=TRUE, size=n),
c=sample(choices, replace=TRUE, size=n),
d=sample(choices, replace=TRUE, size=n))
model <- fa(df, nfactors=2, fm="pa", rotate="promax")
model
Factor Analysis using method = pa
Call: fa(r = df, nfactors = 2, rotate = "promax", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
PA1 PA2 h2 u2 com
a 0.45 -0.49 0.47 0.53 2.0
b 0.22 0.36 0.17 0.83 1.6 …
Run Code Online (Sandbox Code Playgroud) 我有一个 Pandas 数据框,df
其中包含以下 3 列:id
,creation_date
和email
.
我想返回email
列包含任何严格数字组合(必须是严格数字)的所有行,后跟“加”号,然后是任何内容。
例如:
- 1345677+@gmail.com
,2345678+556@gmail.com
将符合我的标准。
-Testing+22@gmail.com
并且test223+22@gmail.com
不会,因为它们在“加号”之前包含非数字字符。
我知道df.email.str.contains('\+')
这行不通,因为它会返回包含“加”号的所有内容。我试过了,df.filter(['email'], regex=r'([^0-9])' % '\+', axis=0)
但它抛出了一条错误消息,内容为TypeError: not all arguments converted during string formatting
.
任何人都可以建议吗?
非常感谢!
虽然我想在 KNeighborsClassifier 中使用标准的欧几里得度量。
knn = KNeighborsRegressor(n_neighbors=k,metric='seuclidean' )
knn.fit(newx,y)
Run Code Online (Sandbox Code Playgroud)
和显示的类型错误:
C:\Anaconda3\lib\site-packages\sklearn\neighbors\base.py in fit(self, X, y)
741 X, y = check_X_y(X, y, "csr", multi_output=True)
742 self._y = y
--> 743 return self._fit(X)
744
745
C:\Anaconda3\lib\site-packages\sklearn\neighbors\base.py in _fit(self, X)
238 self._tree = BallTree(X, self.leaf_size,
239 metric=self.effective_metric_,
--> 240 **self.effective_metric_params_)
241 elif self._fit_method == 'kd_tree':
242 self._tree = KDTree(X, self.leaf_size,
sklearn\neighbors\binary_tree.pxi in sklearn.neighbors.ball_tree.BinaryTree.__init__ (sklearn\neighbors\ball_tree.c:9220)()
sklearn\neighbors\dist_metrics.pyx in sklearn.neighbors.dist_metrics.DistanceMetric.get_metric (sklearn\neighbors\dist_metrics.c:4821)()
sklearn\neighbors\dist_metrics.pyx in sklearn.neighbors.dist_metrics.SEuclideanDistance.__init__ (sklearn\neighbors\dist_metrics.c:6399)()
TypeError: __init__() takes exactly 1 positional argument (0 given)
Run Code Online (Sandbox Code Playgroud)
我只是输入我自己的函数来实现 knn 像: …
鉴于此示例数据:
require(stringr)
require(tidyverse)
labels <- c("foo", "bar", "baz")
n_rows <- 4
df <- 1:n_rows %>%
map(~ data.frame(
block_order=paste(sample(labels, size=length(labels), replace=FALSE),
collapse="|"))) %>%
bind_rows()
df
block_order
1 foo|bar|baz
2 baz|bar|foo
3 foo|baz|bar
4 foo|bar|baz
Run Code Online (Sandbox Code Playgroud)
我想为每个字符串生成一个列labels
,它|
在每行的分隔序列中获取该字符串的位置值.
期望的输出:
block_order foo bar baz
1 foo|bar|baz 1 2 3
2 baz|bar|foo 3 2 1
3 foo|baz|bar 1 3 2
4 foo|bar|baz 1 2 3
Run Code Online (Sandbox Code Playgroud)
我一直在尝试dplyr
/ purrr
setup中的不同变体,比如这个例子,我map
在每个值中label
,然后尝试在block_order
使用match
时获得它的位置str_split
:
labels %>% …
Run Code Online (Sandbox Code Playgroud) 我正在尝试对数据集的几行进行单向方差分析,然后提取 p_value 以供使用。
这是我所做的:
anova <- function(x) {summary(aov(x ~ bt.factor))[[1]]["Pr(>F)"]}
anv.pval <- apply(golubALL, 1, anova)
Run Code Online (Sandbox Code Playgroud)
使用这个公式,我可以提取 pvalue 但它带有其他元素:
$`1414_at`
Pr(>F)
bt.factor 0.7871
Residuals
Run Code Online (Sandbox Code Playgroud)
结果我想要的只是列表中的这个。我怎么能提取它?
python ×8
pandas ×5
r ×4
matplotlib ×2
numpy ×2
purrr ×2
scikit-learn ×2
anova ×1
arrays ×1
broom ×1
correlation ×1
dplyr ×1
keras ×1
langchain ×1
p-value ×1
psych ×1
regex ×1
stringr ×1
timedelta ×1
valueerror ×1