小编epi*_*nio的帖子

在使用numpy读取txt文件时跳过包含字符串的结尾行以生成数值数组

我正在尝试生成一个从互联网上读取文本文件的数组.

我的目标是使用Python而不是MATLAB来替换MATLAB中的这一步:

url=['http://www.cdc.noaa.gov/Correlation/amon.us.long.data'];
urlwrite(url,'file.txt');
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码:

urllib.urlretrieve('http://www.cdc.noaa.gov/Correlation/amon.us.long.data', '/Users/epy/file2.txt')
a = np.loadtxt('/Users/epy/file2.txt', skiprows=1, dtype=None)
Run Code Online (Sandbox Code Playgroud)

但由于文件末尾的文本描述,它失败了.

你知道在最后是否存在跳过X行的方法,或者我必须使用某种字符串操作(readlines?)?

python numpy scipy

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

pandas groupby操作缺少数据

在pandas数据框中,我有一个如下所示的列:

0         M
1         E
2         L
3       M.1
4       M.2
5       M.3
6       E.1
7       E.2
8       E.3
9       E.4
10      L.1
11      L.2
12    M.1.a
13    M.1.b
14    M.1.c
15    M.2.a
16    M.3.a
17    E.1.a
18    E.1.b
19    E.1.c
20    E.2.a
21    E.3.a
22    E.3.b
23    E.4.a
Run Code Online (Sandbox Code Playgroud)

我需要将第一个元素所在的值E, M, or L分组,然后,对于每个组,我需要创建一个子组,其中索引1, 2, or 3将包含每个元素的记录lowercase letter(a,b,c,...)潜在的解决方案应该适用于任意数量的级别连接元素(在这种情况下,级别数为3(例如:A.1.a))

0    1    2
E    1    a
          b
          c
     2    a
     3    a
          b
     4    a
L    1 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

查询基于索引和数据列的pandas数据帧

我有一个看起来像的Datset:

data="""cruiseid  year  station  month  day  date        lat        lon         depth_w  taxon                        count  
        AA8704    1987  1        04     13   13-APR-87   35.85      -75.48      18       Centropages_typicus          75343  
        AA8704    1987  1        04     13   13-APR-87   35.85      -75.48      18       Gastropoda                   0  
        AA8704    1987  1        04     13   13-APR-87   35.85      -75.48      18       Calanus_finmarchicus         2340   
        AA8704    1987  1        07     13   13-JUL-87   35.85      -75.48      18       Acartia_spp.                 5616   
        AA8704    1987  1        07     13   13-JUL-87   35.85      -75.48      18       Metridia_lucens              468    
        AA8704    1987  1        08     13   13-AUG-87   35.85      -75.48      18       Evadne_spp.                  0      
        AA8704    1987 …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

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

从javascript返回值到pyqt5

我正在尝试从PyQt5应用程序内部加载和查询JS地图窗口小部件.我可以使用这个方法:

PyQt5.QtWebEngineWidgets.QWebEngineView().page().runJavaScript()

从加载的网页执行JS函数QWebEngineView()但是我在理解如何将一个由JS函数返回的值存储回python方面遇到了麻烦.

这里有一个完整的例子:

下面的PyQt5代码在PyQt4主窗口中加载一个pyqtwebtest.html带有leaflet.js地图窗口小部件的html page(),并添加一个按钮来执行JS代码,目的是将返回的值存储在python变量中...

#!/usr/local/bin/python36
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import *


class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.form_widget = FormWidget(self)
        _widget = QWidget()
        _layout = QVBoxLayout(_widget)
        _layout.addWidget(self.form_widget)
        self.setCentralWidget(_widget)


class FormWidget(QWidget):
    def __init__(self, parent):
        super(FormWidget, self).__init__(parent)
        self.__controls()
        self.__layout()

    def __controls(self):
        self.browser = QWebEngineView()
        self.browser.load(QUrl('file:///Users/epi/pyqtwebtest.html'))

    def __layout(self):
        self.vbox = QVBoxLayout()
        self.hBox = QVBoxLayout()
        self.getboundsbutton = QPushButton()
        self.hBox.addWidget(self.browser)
        self.hBox.addWidget(self.getboundsbutton)
        self.vbox.addLayout(self.hBox)
        self.setLayout(self.vbox)

        self.getboundsbutton.clicked.connect(self.getBounds) …
Run Code Online (Sandbox Code Playgroud)

javascript python pyqt5 qtwebengine

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

在 numba 中使用多线程

我有一个函数可以在多边形测试中执行一个点。它需要两个 2D numpy 数组作为输入(一系列点和一个多边形)。该函数返回一个布尔值作为输出(如果点位于多边形内,则为 True,否则为 False)。代码是从这个 SO answer借来的。下面是一个例子:

from numba import jit
from numba.pycc import CC
cc = CC('nbspatial')
import numpy as np

@cc.export('array_tracing2', 'b1[:](f8[:,:], f8[:,:])')
@jit(nopython=True, nogil=True)
def array_tracing2(xy, poly):
    D = np.empty(len(xy), dtype=numba.boolean)
    n = len(poly)
    for i in range(1, len(D) - 1):
        inside = False
        p2x = 0.0
        p2y = 0.0
        xints = 0.0
        p1x,p1y = poly[0]
        x = xy[i][0]
        y = xy[i][1]
        for i in range(n+1):
            p2x,p2y = poly[i % n]
            if y > …
Run Code Online (Sandbox Code Playgroud)

python multithreading multiprocessing numba

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