我有一个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
我有以下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做到这一点?任何帮助,将不胜感激.谢谢!
我对使用6次多项式插值非线性数据有非常具体的要求.我已经看到了numpy/scipy例程(scipy.interpolate.InterpolatedUnivariateSpline),它允许插入最多5度.
即使没有直接的功能,有没有办法在Python中复制Excel的LINEST线性回归算法?LINEST允许6度曲线拟合,但我不想使用Excel做任何事情,因为这个计算是一个更大的Python脚本的一部分.
任何帮助,将不胜感激!
我在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雷达图:
在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 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+
"抓住任何一个以上的空白区域"吗?
我有一个重复值的列表,如下所示:
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]
问题:在更少的代码行中,是否有更简洁的方法来做我想要的事情?
我需要生成一堆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中显示扭曲的圆柱体,我完全愿意接受建议.任何帮助,将不胜感激.谢谢!
我使用 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(通过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做