小编Ffi*_*ydd的帖子

python中int()的违反直觉的行为

文档中明确指出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)

这有什么特别的原因吗?我发现在一种情况下功能层是违反直觉的,而不是另一种情况.

python

82
推荐指数
4
解决办法
4459
查看次数

pytz - 将UTC和时区转换为当地时间

我有一个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到给定时区的正确方法是什么?

python timezone utc pytz

30
推荐指数
5
解决办法
4万
查看次数

Python中列的绝对值

如何将列'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)

python calculated-columns pandas

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

每对numpy.array的中间点

我有一个表格数组:

x = np.array([ 1230., 1230., 1227., 1235., 1217., 1153., 1170.])

我想生成另一个数组,其中值是我原始数组中每对值的平均值:

xm = np.array([ 1230., 1228.5, 1231., 1226., 1185., 1161.5])

有人知道在不使用循环的情况下最简单快捷的方法吗?

python numpy mean

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

Matplotlib tight_layout导致RuntimeError

当我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)

python matplotlib python-3.x

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

绘制在同一轴python上的for循环内生成的多个图

我的代码如下,问题是没有一个情节,我得到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)

python matplotlib python-3.x

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

如何在python中正确拟合beta发行版?

我试图找到一个适合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)

python curve-fitting beta-distribution

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

FORTRAN错误#6404:此名称没有类型,并且必须具有显式类型

我是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)

fortran intel-fortran

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

在python中自动设置getter,setter和deleter

好的,我一直在阅读在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)

python oop decorator python-2.7

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

如何在python中使用matplotlib绘制叠加条形图?

我想使用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 plot numpy matplotlib histogram

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