小编prr*_*rao的帖子

计算Python列表中出现次数的最快方法

我有一个Python列表,我想知道'1'在这个列表中计算项目出现次数的最快方法是什么.在我的实际情况中,该项目可以发生数万次,这就是为什么我想要一个快速的方式.

['1', '1', '1', '1', '1', '1', '2', '2', '2', '2', '7', '7', '7', '10', '10']
Run Code Online (Sandbox Code Playgroud)

.count模块有帮助吗?我正在使用Python 2.7

python list repeat

40
推荐指数
2
解决办法
8万
查看次数

按升序对numpy矩阵行值进行排序

我有以下numpy矩阵,我想根据第3列值按升序排序.

[[  3.05706500e+06   4.98000000e+01  -2.62500070e+01  -9.38135544e+01]
 [  3.05706600e+06   4.98000000e+01  -3.00000056e+01  -9.38135544e+01]
 [  3.05706700e+06   4.98000000e+01  -3.37500042e+01  -9.38135544e+01]
 [  3.05706800e+06   4.98000000e+01  -3.75000028e+01  -9.38135544e+01]]
Run Code Online (Sandbox Code Playgroud)

这是我真正想要的矩阵.

[[  3.05706800e+06   4.98000000e+01  -3.75000028e+01  -9.38135544e+01]
 [  3.05706700e+06   4.98000000e+01  -3.37500042e+01  -9.38135544e+01]
 [  3.05706600e+06   4.98000000e+01  -3.00000056e+01  -9.38135544e+01]
 [  3.05706500e+06   4.98000000e+01  -2.62500070e+01  -9.38135544e+01]]
Run Code Online (Sandbox Code Playgroud)

我怎么用numpy做到这一点?任何帮助,将不胜感激.谢谢!

python arrays numpy matrix

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

6度曲线拟合与numpy/scipy

我对使用6次多项式插值非线性数据有非常具体的要求.我已经看到了numpy/scipy例程(scipy.interpolate.InterpolatedUnivariateSpline),它允许插入最多5度.

即使没有直接的功能,有没有办法在Python中复制Excel的LINEST线性回归算法?LINEST允许6度曲线拟合,但我不想使用Excel做任何事情,因为这个计算是一个更大的Python脚本的一部分.

任何帮助,将不胜感激!

python numpy curve-fitting scipy linear-regression

8
推荐指数
2
解决办法
8214
查看次数

在Matplotlib/Python中更改Polar Plots的轴选项

我在Matplotlib中更改轴标签时遇到问题.我想更改Polar Plot中的径向轴选项.

基本上,我正在计算圆柱体的扭曲,这只是半径偏离原始(完全圆形)圆柱体的多少.一些失真值是负的,而一些是由于拉伸和压缩力而为正.我正在寻找一种以图形方式在圆柱坐标中表示这种情况的方法,所以我认为极地情节是我最好的选择.Excel为我提供了一个"雷达图表"选项,该选项足够灵活,可以指定最小和最大径向轴值.我想使用Matplotlib在Python上复制它.

我用于绘制极坐标的Python脚本如下.

#!usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-180.0,190.0,10)
theta = (np.pi/180.0 )*x    # in radians

offset = 2.0

R1 = [-0.358,-0.483,-0.479,-0.346,-0.121,0.137,0.358,0.483,0.479,0.346,0.121,\
-0.137,-0.358,-0.483,-0.479,-0.346,-0.121,0.137,0.358,0.483,0.479,0.346,0.121,\
-0.137,-0.358,-0.483,-0.479,-0.346,-0.121,0.137,0.358,0.483,0.479,0.346,0.121,\
-0.137,-0.358]

fig1 = plt.figure()
ax1 = fig1.add_axes([0.1,0.1,0.8,0.8],polar=True)
ax1.set_rmax(1)
ax1.plot(theta,R1,lw=2.5)
Run Code Online (Sandbox Code Playgroud)

我的情节如下: 坏

但这不是我想要呈现它的方式.我想改变我的径向轴,以便我可以将数据显示为偏离某个参考值,比如说-2.如何在极坐标中询问Matplotlib更改最小轴标签?我可以在Excel中轻松完成这项工作.我选择最小径向值为-2,以获得以下Excel雷达图:
excelplot

在Python上,我可以轻松地将输入数据偏移量为2.我的新数据集称为R2,如下所示:

#!usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-180.0,190.0,10)
theta = (np.pi/180.0 )*x    # in radians

offset = 2.0

R2 = [1.642,1.517,1.521,1.654,1.879,2.137,2.358,2.483,2.479,2.346,2.121,1.863,\
1.642,1.517,1.521,1.654,1.879,2.137,2.358,2.483,2.479,2.346,2.121,1.863,1.642,\
1.517,1.521,1.654,1.879,2.137,2.358,2.483,2.479,2.346,2.121,1.863,1.642]

fig2 = plt.figure()
ax2 = fig2.add_axes([0.1,0.1,0.8,0.8],polar=True)
ax2.plot(theta,R2,lw=2.5) 
ax2.set_rmax(1.5*offset) …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib axis-labels polar-coordinates

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

用于匹配两个或三个空格的Python正则表达式

我试图将以下文本与Python 2.7中的正则表达式相匹配

SUBCASE   8
SUBCASE   9
SUBCASE  10
SUBCASE  11
Run Code Online (Sandbox Code Playgroud)

"subcase"和数字之间的空格数从3下降到2.我试图在Python中使用这个正则表达式:

(SUBCASE)[\s+]([0-9]+)

我哪里错了?难道不应该\s+"抓住任何一个以上的空白区域"吗?

python regex string

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

跟踪Python中重复列表中的值更改

我有一个重复值的列表,如下所示:

x = [1, 1, 1, 2, 2, 2, 1, 1, 1]
Run Code Online (Sandbox Code Playgroud)

此列表是从匹配正则表达式的模式生成的(此处未显示).该列表保证具有重复值(许多,许多重复 - 数百,如果不是数千),并且从不随机排列,因为这是正则表达式每次匹配的内容.

我想要的是跟踪条目从前一个值更改的列表索引.因此,对于上面的列表中x,我想获得一个变化跟踪列表[3, 6]说明x[3],并x[6]从列表中他们以前的条目不同.

我设法做到了这一点,但我想知道是否有更清洁的方式.这是我的代码:

x = [1, 1, 1, 2, 2, 2, 1, 1, 1]

flag = []
for index, item in enumerate(x):
    if index != 0:
        if x[index] != x[index-1]:
            flag.append(index)

print flag
Run Code Online (Sandbox Code Playgroud)

输出:[3, 6]

问题:在更少的代码行中,是否有更简洁的方法来做我想要的事情?

python list repeat

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

使用Matplotlib/Python创建一堆极坐标图

我需要生成一堆2D极坐标图(一个3D圆柱图),以便我可以查看扭曲的圆柱体.我想使用matplotlib,因为我已经安装了它,并希望将我的代码分发给只有matplotlib的其他人.例如,假设我有一堆二维数组.有没有办法,我可以做到这一点,而无需下载外部包?这是我的代码.

#!usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-180.0,190.0,10)
theta = (np.pi/180.0 )*x    # in radians

A0 = 55.0
offset = 60.0

R = [116.225,115.105,114.697,115.008,115.908,117.184,118.61,119.998,121.224,122.216,\
122.93,123.323,123.343,122.948,122.134,120.963,119.575,118.165,116.941,116.074,115.66\
,115.706,116.154,116.913,117.894,119.029,120.261,121.518,122.684,123.594,124.059,\
123.917,123.096,121.661,119.821,117.894,116.225]

fig = plt.figure()
ax = fig.add_axes([0.1,0.1,0.8,0.8],polar=True)     # Polar plot
ax.plot(theta,R,lw=2.5)
ax.set_rmax(1.5*(A0)+offset)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我有10个类似的2D极坐标图,我想要很好地叠加它们.如果有更好的方法可以在3D中显示扭曲的圆柱体,我完全愿意接受建议.任何帮助,将不胜感激.谢谢!

python 3d plot matplotlib polar-coordinates

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

Windows 中 Python 的缓冲输出与非缓冲输出

我使用 NppExec/Notepad++ 运行 Python 脚本,并在运行时连续刷新输出缓冲区,以使用print语句更新控制台窗口(默认缓冲输出仅在脚本执行完成后显示所有打印语句)。

链接显示您所需要做的就是使用该命令python -u来获取无缓冲的输出。无论使用什么编辑器,对所有Python 脚本使用此执行模式是否有缺点?我不清楚缓冲输出和无缓冲输出之间的区别。

编辑:我包含了这个小的 Python 计时器脚本作为示例:

#!usr/bin/env python
import time
import threading
import sys

class Timer(threading.Thread):
    def __init__(self, seconds):
        self.runTime = seconds
        threading.Thread.__init__(self)
    def run(self):
        counter = self.runTime
        for sec in range(self.runTime):
            print counter
            time.sleep(1.0)
            counter -= 1
        print "Done."

if __name__ == '__main__':
    t = Timer(10)
    t.start()
Run Code Online (Sandbox Code Playgroud)

在这种情况下,缓冲和无缓冲输出在效率方面有多大差异?

python notepad++ unbuffered-output nppexec

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

Python单行代码用文本文件中的另一个单词替换一个单词

我正在尝试使用Python(通过Linux终端)替换文本文件的以下行中的"example"一词text_file.txt:

abcdefgh example uvwxyz
Run Code Online (Sandbox Code Playgroud)

我想要的是:

abcdefgh replaced_example uvwxyz
Run Code Online (Sandbox Code Playgroud)

我可以用Python中的单线程做到这一点吗?

编辑: 我有一个perl单行,perl -p -i -e 's#example#replaced_example#' text_file.txt但我也想用Python做

python

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