在文档中明确指出int(number)是一种地板类型转换:
int(1.23)
1
Run Code Online (Sandbox Code Playgroud)
当且仅当字符串是整数文字时,int和int(string)才返回一个int.
int('1.23')
ValueError
int('1')
1
Run Code Online (Sandbox Code Playgroud)
这有什么特别的原因吗?我发现在一种情况下功能层是违反直觉的,而不是另一种情况.
我有一个datetimeutc时区,例如:
utc_time = datetime.datetime.utcnow()
Run Code Online (Sandbox Code Playgroud)
还有一个pytz时区对象:
tz = timezone('America/St_Johns')
Run Code Online (Sandbox Code Playgroud)
转换utc_time到给定时区的正确方法是什么?
如何将列'count'的值转换为绝对值?
我的数据框总结:
datetime count
0 2011-01-20 00:00:00 14.565996
1 2011-01-20 01:00:00 10.204177
2 2011-01-20 02:00:00 -1.261569
3 2011-01-20 03:00:00 1.938322
4 2011-01-20 04:00:00 1.938322
5 2011-01-20 05:00:00 -5.963259
6 2011-01-20 06:00:00 73.711525
Run Code Online (Sandbox Code Playgroud) 我有一个表格数组:
x = np.array([ 1230., 1230., 1227., 1235., 1217., 1153., 1170.])
我想生成另一个数组,其中值是我原始数组中每对值的平均值:
xm = np.array([ 1230., 1228.5, 1231., 1226., 1185., 1161.5])
有人知道在不使用循环的情况下最简单快捷的方法吗?
当我plt.tight_layout()尝试用多个子图整理matplotlib图时,我遇到了一个问题.
我创建了6个子图作为示例,并希望整理它们的重叠文本,tight_layout()但是我得到以下RuntimeError.
Traceback (most recent call last):
File ".\test.py", line 37, in <module>
fig.tight_layout()
File "C:\Python34\lib\site-packages\matplotlib\figure.py", line 1606, in tight_layout
rect=rect)
File "C:\Python34\lib\site-packages\matplotlib\tight_layout.py", line 334, in get_tight_layout_figure
raise RuntimeError("")
RuntimeError
Run Code Online (Sandbox Code Playgroud)
我的代码在这里给出(我使用的是Python 3.4).
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 3*np.pi, 1000)
fig = plt.figure()
ax1 = fig.add_subplot(3, 1, 1)
ax2 = fig.add_subplot(3, 2, 3)
ax3 = fig.add_subplot(3, 2, 4)
ax4 = fig.add_subplot(3, 3, 7)
ax5 = fig.add_subplot(3, 3, 8)
ax6 = fig.add_subplot(3, …Run Code Online (Sandbox Code Playgroud) 我的代码如下,问题是没有一个情节,我得到242个情节.我试过把plt.show()外面的循环,它没有用.
import numpy as np
import matplotlib.pyplot as plt
import csv
names = list()
with open('selected.csv','rb') as infile:
reader = csv.reader(infile, delimiter = ' ')
for row in reader:
names.append(row[0])
names.pop(0)
for j in range(len(names)):
filename = '/home/mh/Masters_Project/Sigma/%s.dat' %(names[j])
average, sigma = np.loadtxt(filename, usecols = (0,1), unpack = True, delimiter = ' ')
name = '%s' %(names[j])
plt.figure()
plt.xlabel('Magnitude(average)', fontsize = 16)
plt.ylabel('$\sigma$', fontsize = 16)
plt.plot(average, sigma, marker = '+', linestyle = '', label = name)
plt.legend(loc …Run Code Online (Sandbox Code Playgroud) 我试图找到一个适合beta分布的正确方法.这不是一个现实世界的问题,我只是测试几种不同方法的效果,而这样做的事情令我感到困惑.
这是我正在研究的python代码,其中我测试了3种不同的方法:1>:使用时刻拟合(样本均值和方差).2>:通过最小化负对数似然来拟合(通过使用scipy.optimize.fmin()).3>:只需调用scipy.stats.beta.fit()
from scipy.optimize import fmin
from scipy.stats import beta
from scipy.special import gamma as gammaf
import matplotlib.pyplot as plt
import numpy
def betaNLL(param,*args):
'''Negative log likelihood function for beta
<param>: list for parameters to be fitted.
<args>: 1-element array containing the sample data.
Return <nll>: negative log-likelihood to be minimized.
'''
a,b=param
data=args[0]
pdf=beta.pdf(data,a,b,loc=0,scale=1)
lg=numpy.log(pdf)
#-----Replace -inf with 0s------
lg=numpy.where(lg==-numpy.inf,0,lg)
nll=-1*numpy.sum(lg)
return nll
#-------------------Sample data-------------------
data=beta.rvs(5,2,loc=0,scale=1,size=500)
#----------------Normalize to [0,1]----------------
#data=(data-numpy.min(data))/(numpy.max(data)-numpy.min(data))
#----------------Fit using moments----------------
mean=numpy.mean(data)
var=numpy.var(data,ddof=1)
alpha1=mean**2*(1-mean)/var-mean
beta1=alpha1*(1-mean)/mean
#------------------Fit using …Run Code Online (Sandbox Code Playgroud) 我是FORTRAN的新手,并且收到了这个错误#6404.
my_file.f(11): error #6404: This name does not have a type, and must have an explicit type.
[POTENCIAL] d=POTENCIAL(1.0,1.0,1.0,1.0,1.4,1.4)
Run Code Online (Sandbox Code Playgroud)
这是使用ifort编译器,我希望它不是编译器错误.
我错了什么想法?
program iiuu
implicit none
REAL*8 d
d=POTENCIAL(1.0,1.0,1.0,1.0,1.4,1.4)
write(*,*) 'potential=', d
END program iiuu
FUNCTION POTENCIAL(R1,R2,R3,R4,R5,R6)
REAL*8 R1,R2,R3,R4,R5,R6,V2,V3,V4
DIMENSION R(6)
R(1)=R1
R(2)=R2
R(3)=R3
R(4)=R4
R(5)=R5
R(6)=R6
V2=V2BODY(R)
V3=V3BODY(R)
V4=V4BODY(R)
POTENCIAL=V2+V3+V4+VADD(R)
RETURN
END
FUNCTION V2BODY(R)
.....
.....
Run Code Online (Sandbox Code Playgroud) 好的,我一直在阅读在Python中使用@property装饰器而不是获取,设置和删除的具体方法.一些示例代码如下所示.
class Person(object):
def __init__(self):
self._firstName = None
self._lastName = None
self._age = None
@property
def firstName(self): return self._firstName
@firstName.setter
def firstName(self, val): self._firstName = val
@firstName.deleter
def firstName(self): del self._firstName
@property
def lastName(self): return self._lastName
@lastName.setter
def lastName(self, val): self._lastName = val
@lastName.deleter
def lastName(self): del self._lastName
@property
def age(self): return self._age
@age.setter
def age(self, val): self._age = val
@age.deleter
def age(self): del self._age
Peter = Person()
Peter.firstName = 'Peter'
Peter.lastName = 'Smith'
Peter.age = 21
print …Run Code Online (Sandbox Code Playgroud) 我想使用matplotlib绘制条形图或直方图.我不想要一个堆积条形图,而是一个两个数据列表的叠加条形图,例如我有以下两个数据列表:
一些代码开头:
import matplotlib.pyplot as plt
from numpy.random import normal, uniform
highPower = [1184.53,1523.48,1521.05,1517.88,1519.88,1414.98,1419.34,
1415.13,1182.70,1165.17]
lowPower = [1000.95,1233.37, 1198.97,1198.01,1214.29,1130.86,1138.70,
1104.12,1012.95,1000.36]
plt.hist(highPower, bins=10, histtype='stepfilled', normed=True,
color='b', label='Max Power in mW')
plt.hist(lowPower, bins=10, histtype='stepfilled', normed=True,
color='r', alpha=0.5, label='Min Power in mW')
Run Code Online (Sandbox Code Playgroud)
我想根据两个列表中的值的数量绘制这两个列表,以便我能够看到每个读数的变化.
python ×9
matplotlib ×3
numpy ×2
python-3.x ×2
decorator ×1
fortran ×1
histogram ×1
mean ×1
oop ×1
pandas ×1
plot ×1
python-2.7 ×1
pytz ×1
timezone ×1
utc ×1