小编abu*_*dis的帖子

用列表的值替换numpy索引数组的值

假设你有一个numpy数组和一个列表:

>>> a = np.array([1,2,2,1]).reshape(2,2)
>>> a
array([[1, 2],
       [2, 1]])
>>> b = [0, 10]
Run Code Online (Sandbox Code Playgroud)

我想替换数组中的值,以便将1替换为0,将2替换为10.

我在这里发现了类似的问题 - http://mail.python.org/pipermail//tutor/2011-September/085392.html

但使用此解决方案:

for x in np.nditer(a):
    if x==1:
        x[...]=x=0
    elif x==2:
        x[...]=x=10
Run Code Online (Sandbox Code Playgroud)

给我一个错误:

ValueError: assignment destination is read-only
Run Code Online (Sandbox Code Playgroud)

我想这是因为我无法写入一个numpy数组.

PS numpy数组的实际大小是514乘504,列表是8.

python indexing numpy

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

从Django模板中删除换行符

我在这样的模板中有一个循环

{% spaceless %}
{% for lang_code, lang_name in LANGUAGES %}
    <link hreflang={{ lang_code }} href="http://example.com/
    {% if lang_code|length > 2 %}
        {{ some_path }}
    {% else %}
        {{ other_path }}
    {% endif %}
    ">
{% endfor %}
{% endspaceless %}
Run Code Online (Sandbox Code Playgroud)

产生这样的东西

<link hreflang="en-gb" href="http://example.com/
    some_path/ 
    "><link hreflang="de" ...>
Run Code Online (Sandbox Code Playgroud)

是否可以重写这段代码,以便将整个标记写在一行中?

<link hreflang="en-gb" href="http://example.com/some_path/">
<link hreflang="de" href="http://example.com/other_path/">
...
Run Code Online (Sandbox Code Playgroud)

PS如果if/else子句延伸超过一行,则可以实现,但是该行变得不可读.

django django-templates

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

在Python中绘制直方图的时间序列

我正在尝试用Python绘制时间序列的直方图.已经有这个了类似的问题,但R中.所以,基本上,我需要相同的东西,但我在R中真的很糟糕.我的数据集中每天通常有48个值.其中 - 9999表示缺少数据. 这是数据的样本.

我开始阅读数据并构建一个pandas DataFrame.

import pandas as pd
df = pd.read_csv('sample.csv', parse_dates=True, index_col=0, na_values='-9999') 
print df

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 336 entries, 2008-07-25 14:00:00 to 2008-08-01 13:30:00
Data columns (total 1 columns):
159.487691046    330  non-null values
dtypes: float64(1)
Run Code Online (Sandbox Code Playgroud)

现在我可以按天分组数据:

daily = df.groupby(lambda x: x.date())
Run Code Online (Sandbox Code Playgroud)

但后来我被卡住了.我不知道如何使用它matplotlib来获取直方图的时间序列.任何帮助表示赞赏,不一定使用pandas.

python matplotlib histogram pandas

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

使用 GridSearchCV 进行 RandomForestRegressor

我试图使用GridSearchCVfor RandomForestRegressor,但总是得到ValueError: Found array with dim 100. Expected 500. 考虑这个玩具示例:

import numpy as np

from sklearn import ensemble
from sklearn.cross_validation import train_test_split
from sklearn.grid_search import GridSearchCV
from sklearn.metrics import r2_score

if __name__ == '__main__':

    X = np.random.rand(1000, 2)
    y = np.random.rand(1000)

    X_train, X_test, y_train, y_test = train_test_split(
        X, y, test_size=0.5, random_state=1)

    # Set the parameters by cross-validation
    tuned_parameters = {'n_estimators': [500, 700, 1000], 'max_depth': [None, 1, 2, 3], 'min_samples_split': [1, 2, 3]}

    # clf = …
Run Code Online (Sandbox Code Playgroud)

python random-forest scikit-learn cross-validation

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

matplotlib 中垂直梯度作为标记面

是否可以在 matplotlib 中将垂直渐变设置为标记面?例如这样的事情: TikZ 垂直渐变脸

python matplotlib

5
推荐指数
0
解决办法
370
查看次数

来自numpy ndarray的日期时间对象的Python数组

我有numpy ndarray,它包含两列:一个是日期,例如2011-08-04,另一个是时间,例如19:00:00:081.

如何将它们组合成一个datetime对象数组?目前,它们是numpy数组中的字符串.

python datetime numpy

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

在Python中使用strptime解析没有前导零的小时数

假设您有这种格式的时间:

a = [..., 800.0, 830.0, 900.0, 930.0, 1000.0, 1030.0, ...]
Run Code Online (Sandbox Code Playgroud)

问题是缺少数小时的前导零.例如00:30由下式表示30,08:00由下式表示800.,并00:00由下式表示2400.是否可以time使用strptime方法将此数据解析为对象?我尝试使用以下代码

hours = [time.strptime(str(int(i)), "%H%M") for i in a]
Run Code Online (Sandbox Code Playgroud)

但得到了

ValueError: unconverted data remains: 0
Run Code Online (Sandbox Code Playgroud)

PS我正在使用Python 2.7.

python time strptime

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

R 赋值运算符

我正在检查 R 赋值运算符并试图了解它们是如何工作的,所以我编写了以下代码:

> somevar1 <- "stuff1"
> "stuff2" -> somevar2
> somevar3 = "stuff3"
> "stuff4" <- somevar4
Error: object 'somevar4' not found
> "stuff5" = somevar5
Error: object 'somevar5' not found
> `<-`(somevar6, "stuff6")
> `=`(somevar7, "stuff7")
> `=`("stuff8", somevar8)
Error: object 'somevar8' not found
> `->`("stuff9", somevar9)
Error in `->`("stuff9", somevar9) : could not find function "->"
> `<<-`(somevar10, "stuff10")
> `->>`("stuff11", somevar11)
Error in `->>`("stuff11", somevar11) : could not find function "->>"
Run Code Online (Sandbox Code Playgroud)

到了上线,somevar9用在哪里,一切似乎都符合预期。Error …

r

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

使用pandas将日期,时间和纳秒解析为datetime对象

我有ASCII一个相当奇怪的时间戳文件:

DATAH   DATE    TIME    SECONDS NANOSECONDS D
DATA    2012-06-04  23:49:15    1338853755  700000000   0.00855577
DATA    2012-06-04  23:49:15    1338853755  800000000   0.00805482
DATA    2012-06-04  23:49:15    1338853755  900000000   -0.00537284
DATA    2012-06-04  23:49:16    1338853756  0   -0.0239447
Run Code Online (Sandbox Code Playgroud)

基本上,时间戳分为4列--DATE,TIME,SECONDS和NANOSECONDS.我想将该文件作为pandas DataFrameDATE,TIME和NANOSECONDS作为datetime对象读取,它们用作索引:

import datetime as dt
import pandas as pd

parse = lambda x: dt.datetime.strptime(x, '%Y-%m-%d %H:%M:%S %f')

df = pd.read_csv('data.txt', sep='\t', parse_dates=[['DATE', 'TIME', 'NANOSECONDS']], index_col=0, date_parser=parse)
Run Code Online (Sandbox Code Playgroud)

但这失败了,因为%f格式要求纳秒值有9位而不是6位.如果我手动从NANOSECONDS列中的值中删除3个额外的零,则上述代码有效.您能告诉我,如何pandas DataFrame使用DATE,TIME和NANOSECONDS列作为索引将示例文件作为对象读入?

[ UPDATE ]使用%f000所建议behzad.nouri如果纳秒列不包含0值的工作原理.所以,显然这就是现在造成问题的原因.

python datetime pandas

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

使用pandas将数天的数据帧拆分为半小时的数据帧并将其保存为csv文件

我需要将大量(几百万条记录)文件分成半小时文件,使用pandas与其他第三方软件一起使用.这是我试过的:

import datetime as dt
import string
import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(1728000, 2), index=pd.date_range('1/1/2014',
    periods=1728000, freq='0.1S'))
df_groups = df.groupby(df.index.map(lambda t: dt.datetime(t.year, t.month,
    t.day, t.hour)))
for name, group in df_groups:
    group.to_csv(string.replace(str(name), ':', '_') + '.csv')
Run Code Online (Sandbox Code Playgroud)

但这样我才能让熊猫按小时分开.如果我想将它们分成半小时的文件,我该怎么办?

要记住以下几点:a)大文件可能会持续数天,所以如果我使用的话,lambda t: t.hour我可以从不同的日期获取数据,但同时将数据组合在一起; b)大文件有间隙,因此有些半小时可能不完整,有些可能完全丢失.

python pandas

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