小编Gia*_*ear的帖子

Python:使用sys.exit或SystemExit的差异和建议

在线阅读一些程序员使用sys.exit,其他人使用SystemExit.
对不起,基本问题是:

  1. 有什么不同?
  2. 我什么时候需要在函数内使用SystemExit或sys.exit?

ref = osgeo.ogr.Open(reference)
if ref is None:
    raise SystemExit('Unable to open %s' % reference)
Run Code Online (Sandbox Code Playgroud)

要么

ref = osgeo.ogr.Open(reference)
if ref is None:
    print('Unable to open %s' % reference)
    sys.exit(-1)
Run Code Online (Sandbox Code Playgroud)

python performance coding-style

44
推荐指数
6
解决办法
4万
查看次数

R"stats"引用科学论文

我使用R包'stats'(版本2.15.3)分析了我的数据.一位评论员问我这个包的正确引用,而不仅仅是普通的

R核心团队(2012年).R:统计计算的语言和环境.R统计计算基金会,奥地利维也纳.ISBN 3-900051-07-0,URL http://www.R-project.org/

有谁知道我在哪里可以找到有效的引文插入我的论文?谢谢

r citations package stat

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

使用len()和def __len __(self):构建一个类

只是好奇,

使用len()def __len__()构建课程之间有什么区别(优点和缺点)?哪个是最好的Python风格?

   class foo(object):
      def __init__(self,obs=[])
         self.data = obs
         self.max = max(obs)
         self.min = min(obs)
         self.len = len(obs)
Run Code Online (Sandbox Code Playgroud)

要么

   class foo(object):
      def __init__(self,obs=[])
         self.data = obs
         self.max = max(obs)
         self.min = min(obs)
      def __len__(self):
         return len(self.data)
Run Code Online (Sandbox Code Playgroud)

python optimization coding-style class

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

Python最快的读取大文本文件的方法(几GB)

我有一个大文本文件(约7 GB).我正在寻找是否存在阅读大文本文件的最快方法.我一直在阅读有关使用多种方法作为读取chunk-by-chunk以加快进程的过程.

例如,effbot建议

# File: readline-example-3.py

file = open("sample.txt")

while 1:
    lines = file.readlines(100000)
    if not lines:
        break
    for line in lines:
        pass # do something**strong text**
Run Code Online (Sandbox Code Playgroud)

为了每秒处理96,900行文本.其他作者建议使用islice()

from itertools import islice

with open(...) as f:
    while True:
        next_n_lines = list(islice(f, n))
        if not next_n_lines:
            break
        # process next_n_lines
Run Code Online (Sandbox Code Playgroud)

list(islice(f, n))将返回n文件的下一行列表f.在循环中使用它将为您提供大量n行的文件

python optimization performance line chunking

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

python:帮助实现一个算法,找到给定点的最小面积矩形,以计算长轴和短轴长度

我有一组从多边形(红色)的凸包(蓝色)派生的点(地理坐标值中的黑点).见图:在此输入图像描述

[(560023.44957588764,6362057.3904932579), 
 (560023.44957588764,6362060.3904932579), 
 (560024.44957588764,6362063.3904932579), 
 (560026.94957588764,6362068.3904932579), 
 (560028.44957588764,6362069.8904932579), 
 (560034.94957588764,6362071.8904932579), 
 (560036.44957588764,6362071.8904932579), 
 (560037.44957588764,6362070.3904932579), 
 (560037.44957588764,6362064.8904932579), 
 (560036.44957588764,6362063.3904932579), 
 (560034.94957588764,6362061.3904932579), 
 (560026.94957588764,6362057.8904932579), 
 (560025.44957588764,6362057.3904932579), 
 (560023.44957588764,6362057.3904932579)]
Run Code Online (Sandbox Code Playgroud)

我需要按照这些步骤计算主轴和短轴长度(在R-project和Java中写这篇文章)或遵循这个示例程序

在此输入图像描述

  1. 计算云的凸包.
  2. 对于凸包的每个边缘:2a.计算边缘方向,2b.使用此方向旋转凸包,以便轻松计算旋转凸包2c的最小/最大x/y的边界矩形区域.存储与找到的最小区域对应的方向,
  3. 返回与找到的最小区域对应的矩形.

之后我们知道角度Theta(表示边界矩形相对于图像y轴的方向).找到所有边界点上ab的最小值和最大值:

  • a(xi,yi)= xi*cos Theta + yi sin Theta
  • b(xi,yi)= xi*sin Theta + yi cos Theta

值(a_max-a_min)和(b_max-b_min)分别定义了方向Theta的边界矩形的长度和宽度.

在此输入图像描述

python geometry

18
推荐指数
4
解决办法
2万
查看次数

DBSCAN scikit-learn of Python:将聚类点保存在数组中

以下示例Scikit Learning 的DBSCAN聚类算法示例我试图在数组中存储每个聚类类的x,y

import numpy as np
from sklearn.cluster import DBSCAN
from sklearn import metrics
from sklearn.datasets.samples_generator import make_blobs
from sklearn.preprocessing import StandardScaler
from pylab import *

# Generate sample data
centers = [[1, 1], [-1, -1], [1, -1]]
X, labels_true = make_blobs(n_samples=750, centers=centers, cluster_std=0.4, random_state=0)
X = StandardScaler().fit_transform(X) 

xx, yy = zip(*X)
scatter(xx,yy)
show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

db = DBSCAN(eps=0.3, min_samples=10).fit(X)
core_samples = db.core_sample_indices_
labels = db.labels_
n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0)
print n_clusters_
3 …
Run Code Online (Sandbox Code Playgroud)

python cluster-analysis dbscan scikit-learn

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

使用py2exe在Python中打包软件,找不到"libiomp5md.dll"

我在Window 7 OS上安装了Python 2.7.我希望使用py2exe将我的project.py打包在一个可执行文件中.按照说明我写了一个setup.py文件

from distutils.core import setup
import py2exe

setup(console=["project.py"])  
Run Code Online (Sandbox Code Playgroud)

我收到了这条消息

在此输入图像描述

我试图排除' libiomp5md.dll '

from distutils.core import setup
import py2exe

setup(console=["SegmentationAccuracy.py"])

dll_excludes = ['libiomp5md.dll']
Run Code Online (Sandbox Code Playgroud)

但总是我得到相同的错误消息"错误:libiomo5md.dll:没有这样的文件或目录"

我的可执行文件:

import math
import os
import numpy as np
import sys
import ogr
from progressbar import ProgressBar
from shapely.geometry import Polygon
nan = np.nan
Run Code Online (Sandbox Code Playgroud)

python executable exe runtime-error py2exe

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

Python中最小的封闭圆,代码中的错误

我有一组表示多边形顶点(x,y)的点.

points= [(421640.3639270504, 4596366.353552659), (421635.79361391126, 4596369.054192241), (421632.6774913164, 4596371.131607305), (421629.14588570886, 4596374.870954419), (421625.6142801013, 4596377.779335507), (421624.99105558236, 4596382.14190714), (421630.1845932406, 4596388.062540068), (421633.3007158355, 4596388.270281575), (421637.87102897465, 4596391.8018871825), (421642.4413421138, 4596394.918009778), (421646.5961722403, 4596399.903805929), (421649.71229483513, 4596403.850894549), (421653.8940752105, 4596409.600842565), (421654.69809098693, 4596410.706364258), (421657.60647207545, 4596411.329588776), (421660.514853164, 4596409.875398233), (421661.3458191893, 4596406.136051118), (421661.5535606956, 4596403.22767003), (421658.85292111343, 4596400.94251346), (421656.5677645438, 4596399.696064423), (421655.52905701223, 4596396.164458815), (421652.82841743, 4596394.502526765), (421648.46584579715, 4596391.8018871825), (421646.38843073393, 4596388.270281575), (421645.55746470863, 4596386.400608018), (421647.21939675923, 4596384.115451449), (421649.5045533288, 4596382.661260904), (421650.7510023668, 4596378.714172284), (421647.8426212782, 4596375.8057911955), (421644.9342401897, 4596372.897410107), (421643.6877911517, 4596370.404512031), (421640.3639270504, 4596366.353552659)]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我需要找到最小的封闭圆(区域,中心的x和y,以及半径)

在此输入图像描述

我正在使用从此页面派生的python代码:Nayuki的最小封闭圈

当我运行代码时,结果每次都会改变,例如:

>>> make_circle(points)
(421643.0645666326, 4596393.82736687, 23.70763190712525)
>>> make_circle(points)
(421647.8426212782, 4596375.8057911955, 0.0) …
Run Code Online (Sandbox Code Playgroud)

python algorithm geometry runtime-error computational-geometry

14
推荐指数
2
解决办法
4624
查看次数

如何使用Inno Setup创建桌面图标

我是Inno Setup的新手,我希望在Inno Setup中为我的可执行文件添加一个桌面图标.该文件存储在

C:\Users\PycharmProjects\GIOTTOconverter\dist\giotto.ico
Run Code Online (Sandbox Code Playgroud)

我尝试了几个例子,但没有结果.

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "GIOTTO"
#define MyAppVersion "1.0"
#define MyAppExeName "GIOTTO.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{48A8A469-1711-46FD-AC87-1596EF57C123}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName} …
Run Code Online (Sandbox Code Playgroud)

installation desktop icons executable inno-setup

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

Python:从Python字典中删除空列表的优雅方法

我有一本字典:

default = {'a': ['alpha'], 'b': ['beta','gamma'], 'g': []}
Run Code Online (Sandbox Code Playgroud)

我希望消除空值:

default = {'a': ['alpha'], 'b': ['beta','gamma']}
Run Code Online (Sandbox Code Playgroud)

我写了一个函数(按照网络上的一个例子)

def remove_empty_keys(d):
    for k in d.keys():
        try:
            if len(d[k]) < 1:
                del[k]
        except:
            pass
        return(d)
Run Code Online (Sandbox Code Playgroud)

我有以下问题:

1-我没有找到错误,为什么它总是返回以下 -

remove_empty_keys(default)
 {'a': ['alpha'], 'b': ['beta'], 'g': []}
Run Code Online (Sandbox Code Playgroud)

2-是否有内置函数从Python字典中删除/删除Null/None/empty值而不创建原始字典的副本?

python dictionary list

8
推荐指数
3
解决办法
5910
查看次数