我在一个fibo.py文件中有一个模块,它具有以下功能 -
#fibonacci numbers module
def fib(n): # write Fibonacci series up to n
a, b = 0, 1
while b < n:
print(b, end=' ')
a, b = b, a+b
print()
def fib2(n): # return Fibonacci series up to n
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a+b
return result
Run Code Online (Sandbox Code Playgroud)
现在当我从cli python3运行模块时 -
> python3 -m fibo.py
Run Code Online (Sandbox Code Playgroud)
我收到了错误
Error while finding spec for 'fibo.py' (<class 'AttributeError'>:
'module' …Run Code Online (Sandbox Code Playgroud) 我已经在python中创建了一个字典并将其转换为pickle.它的大小达到了300MB.现在,我想加载相同的泡菜.
output = open('myfile.pkl', 'rb')
mydict = pickle.load(output)
Run Code Online (Sandbox Code Playgroud)
加载这个泡菜大约需要15秒.我怎样才能减少这个时间?
硬件规格:Ubuntu 14.04,4GB RAM
下面的代码显示了使用json,pickle,cPickle转储或加载文件所需的时间.
转储后,文件大小约为300MB.
import json, pickle, cPickle
import os, timeit
import json
mydict= {all values to be added}
def dump_json():
output = open('myfile1.json', 'wb')
json.dump(mydict, output)
output.close()
def dump_pickle():
output = open('myfile2.pkl', 'wb')
pickle.dump(mydict, output,protocol=cPickle.HIGHEST_PROTOCOL)
output.close()
def dump_cpickle():
output = open('myfile3.pkl', 'wb')
cPickle.dump(mydict, output,protocol=cPickle.HIGHEST_PROTOCOL)
output.close()
def load_json():
output = open('myfile1.json', 'rb')
mydict = json.load(output)
output.close()
def load_pickle():
output = open('myfile2.pkl', 'rb')
mydict = pickle.load(output)
output.close()
def …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个用于异常检测的ARIMA.我需要找到时间序列图的移动平均线我试图使用pandas 0.23
import pandas as pd
import numpy as np
from statsmodels.tsa.stattools import adfuller
import matplotlib.pylab as plt
from matplotlib.pylab import rcParams
rcParams['figure.figsize'] = 15, 6
dateparse = lambda dates: pd.datetime.strptime(dates, '%Y-%m')
data = pd.read_csv('AirPassengers.csv', parse_dates=['Month'], index_col='Month',date_parser=dateparse)
data.index
ts = data['#Passengers']
ts.head(10)
plt.plot(ts)
ts_log = np.log(ts)
plt.plot(ts_log)
moving_avg = pd.rolling_mean(ts_log,12) # here is the error
pd.rolling_mean
plt.plot(ts_log)
plt.plot(moving_avg, color='red')
Run Code Online (Sandbox Code Playgroud)
错误:回溯(最近一次调用最后一次):文件"C:\ Program Files\Python36\lastmainprogram.py",第74行,在moving_avg = pd.rolling_mean(ts_log,12)中AttributeError:模块'pandas'没有属性'rolling_mean "
据了解,Python lambda 函数有助于创建匿名函数.这些可以在排序函数中的map(),reduce(),filter()和key()等其他函数中使用.它还可以用于演示和利用词法闭包.
我想在这里特别了解的是,lambda函数在执行时间方面是否比常规函数具有特定优势,考虑到所有其他因素不变?
由于我是Python的新手,我试图通过类似地将它们与C++的内联函数进行比较来理解它们.正如我从C++中理解的那样,内联函数在节省时间方面很有用,因为它们不需要与函数调用和跳转期间发生的上下文切换有关的必要"内务处理任务".
Python Lambda函数与常规函数相比具有类似的优势吗?
我发现一些相关帖子对我的问题有用但不一定有用: 为什么Python lambdas有用? 为什么要使用lambda函数?
我编写了将CSV读入python字典的代码,工作正常.我正在尝试将字典恢复为CSV格式.我写了以下内容:
import csv
itemDict={}
listReader = csv.reader(open('/Users/broberts/Desktop/Sum_CSP1.csv','rU'), delimiter = ',', quotechar='|')
for row in listReader:
fID = row[0]
fClassRange = row[1]
fArea = row[2]
if itemDict.has_key(fID):
itemDict[fID][fClassRange]=fArea
else:
itemDict[fID] = {'5.0 to 5.25':'','5.25 to 5.5':'','5.5 to 5.75':'','5.75 to 6.0':'','6.0 to 6.25':'','6.25 to 6.5':'','6.5 to 6.75':'','6.75 to 7.0':'','7.0 to 7.25':'','7.25 to 7.5':'','7.5 to 7.75':'','7.75 to 8.0':'','8.0 to 8.25':'',}
itemDict[fID][fClassRange]=fArea
listWriter = csv.writer(open('/Users/broberts/Desktop/Sum_CSP1_output.csv', 'wb'), delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
for a in itemDict:
print a
listWriter.writerow(a)
Run Code Online (Sandbox Code Playgroud)
在最后一个块中,listWriter不会向CSV写入任何内容,尽管它会打印出来.我相信这与字典无序有关.我真的需要写出fID和每个fID相关的每个键(fClassRange ex."5.0到5.25"),然后写出与每个fClassRange相关联的值fArea到CSV,但我还没有得到那么多我的代码,因为我无法弄清楚如何写出甚至fID.
我查看了使用DictWriter,但我无法弄清楚如何告诉它所需的字段名是什么.
有谁知道如何用angular-cli完成这个?我希望能够在构建期间将baseHref路径存储在环境变量中/src/environments/environment.x.ts并基于所选环境,能够设置baseHref路径.
像这样的东西:
environment.ts
export const environment = {
production: false,
baseHref: '/'
};
Run Code Online (Sandbox Code Playgroud)
environment.prod.ts
export const environment = {
production: true,
baseHref: '/my-app/'
};
Run Code Online (Sandbox Code Playgroud)
然后打电话给...
ng build --prod
Run Code Online (Sandbox Code Playgroud)
...并让我的/dist/index.html文件显示<base href="/my-app/">.
我想也许如果我将我的环境变量命名为与构建命令中--base-href使用的构建选项相同,cli可能会选择它,但也没有骰子.
有没有办法从命令行引用环境变量?有点像ng build --base-href environment.baseHref?
我正在学习python并且正在练习练习.其中之一是编码投票系统,使用列表选择比赛的23名球员之间的最佳球员.
我正在使用Python3.
我的代码:
players= [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
vote = 0
cont = 0
while(vote >= 0 and vote <23):
vote = input('Enter the name of the player you wish to vote for')
if (0 < vote <=24):
players[vote +1] += 1;cont +=1
else:
print('Invalid vote, try again')
Run Code Online (Sandbox Code Playgroud)
我明白了
TypeError:'str'和'int'实例之间不支持'<='
但我这里没有任何字符串,所有变量都是整数.
我在我的python应用程序中使用redis来存储简单的值,如计数器和时间戳列表,但是试图获得一个计数器并将其与数字进行比较我遇到了一个问题.
如果我做:
import redis
...
myserver = redis.Redis("localhost")
myserver.set('counter', 5)
Run Code Online (Sandbox Code Playgroud)
然后尝试获得这样的值:
if myserver.get('counter') < 10:
myserver.incr('counter')
Run Code Online (Sandbox Code Playgroud)
然后我在if语句中得到一个类型错误,因为我正在比较'5'<10,这意味着我存储一个整数值并获得一个字符串(可以认为是一个不同的值).
我的问题是:这应该是那样的吗?我的意思是它是一个非常基本的类型,我理解我是否必须解析对象而不是int?似乎我做错了什么.
有什么配置我不见了?
有没有办法让redis返回正确的类型而不总是一个字符串?我这样说是因为它对于列表和日期时间甚至是浮点值都是一样的.
这可能是我正在使用的redis-py客户端的问题,而不是redis本身?
我想要在表格中重新排列行的功能(使用拖放操作排序行). 行排列的索引也应该在模型中改变.
我怎样才能做类似的事情:http://jsfiddle.net/tzYbU/1162/ 使用Angular Directive?
我正在生成表格:
<table id="sort" class="table table-striped table-bordered">
<thead>
<tr>
<th class="header-color-green"></th>
<th ng-repeat="titles in Rules.Titles">{{titles.title}}</th>
</tr>
</thead>
<tbody ng-repeat="rule in Rules.data">
<tr>
<td class="center"><span>{{rule.ruleSeq}}</span></td>
<td ng-repeat="data in rule.ruleData">{{statusArr[data.value]}}</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud) 我需要读取一个包含逗号字段的CSV文件,因此我引用了包含逗号的字段,例如:
1, "text1,text2", "text3, text4", a, b, c
Run Code Online (Sandbox Code Playgroud)
但是当我尝试用Python读取文件时,我得到的字段用逗号分隔,如下所示:
row[0] = 1
row[1] = text1
row[2] = text2
row[3] = text3
row[4] = text4
row[5] = a
row[6] = b
row[7] = c
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码阅读CSV文件:
info = csv.reader(open('./info.csv'))
for row in info :
print row[0] + " * " + row[1] ...
Run Code Online (Sandbox Code Playgroud)
是否可以读取包含逗号的双引号字段?
python ×7
csv ×2
python-3.x ×2
angular ×1
angular-cli ×1
angularjs ×1
arima ×1
dictionary ×1
html-table ×1
javascript ×1
lambda ×1
pandas ×1
performance ×1
pickle ×1
redis ×1
time-series ×1
types ×1