我确信matplotlib for python的配置是正确的,因为我用它来绘制一些数字.
但今天它因某种原因停止工作.我用非常简单的代码测试了它,例如:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 5, 0.1)
y = np.sin(x)
plt.plot(x, y)
Run Code Online (Sandbox Code Playgroud)
没有错误,但没有出现数字.
我在Ubuntu中使用python 2.6,Eclipse
我有一个名为的无序列表d
,如下所示:
[0.0000, 123.9877,0.0000,9870.9876, ...]
Run Code Online (Sandbox Code Playgroud)
我只是想通过在Python中使用Matplotlib来绘制基于此列表的cdf图.但是不知道我是否可以使用任何功能
d = []
d_sorted = []
for line in fd.readlines():
(addr, videoid, userag, usertp, timeinterval) = line.split()
d.append(float(timeinterval))
d_sorted = sorted(d)
class discrete_cdf:
def __init__(data):
self._data = data # must be sorted
self._data_len = float(len(data))
def __call__(point):
return (len(self._data[:bisect_left(self._data, point)]) /
self._data_len)
cdf = discrete_cdf(d_sorted)
xvalues = range(0, max(d_sorted))
yvalues = [cdf(point) for point in xvalues]
plt.plot(xvalues, yvalues)
Run Code Online (Sandbox Code Playgroud)
现在我正在使用此代码,但错误消息是:
Traceback (most recent call last):
File "hitratioparea_0117.py", line 43, in <module>
cdf = discrete_cdf(d_sorted) …
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何将具有多个键的字典创建为一个值?
我有5列数据,
usermac, useragent, area ,videoid, number of requests
Run Code Online (Sandbox Code Playgroud)
我想使用(usermac,useragent)作为创建字典的关键字,因为(usermac,useragent)的唯一组合代表一个唯一的用户.
所以字典就像:
usermac1, useragent1: area1, videoid1, 10
area1, videoid2, 29
usermac1, useragent2: area1, videoid1, 90
area1, videoid2, 34
...
Run Code Online (Sandbox Code Playgroud)
我只知道如何创建只有一个项目作为键的字典.有人可以帮忙吗?
我的代码是:
for line in fd_in.readlines():
(mac, useragent, area, videoid, reqs) = line.split()
video_dict = d1.setdefault((mac,useragent) {})
video_dict.setdefault(videoid, []).append(float(reqs))
Run Code Online (Sandbox Code Playgroud)
它有语法错误:
video_dict = d1.setdefault((mac,useragent) {})
Run Code Online (Sandbox Code Playgroud) 我有一个这样的字典:
user_dict = {
user1: [(video1, 10),(video2,20),(video3,1)]
user2: [(video1, 4),(video2,8),(video6,45)]
...
user100: [(video1, 46),(video2,34),(video6,4)]
}
(video1,10) means (videoid, number of request)
Run Code Online (Sandbox Code Playgroud)
现在我想随机选择10个用户并进行一些计算
1. calculate number of videoid for each user.
2. sum up the number of requests for these 10 random users, etc
Run Code Online (Sandbox Code Playgroud)
然后我需要将随机数分别增加到20,30,40
但是"random.choice"一次只能选择一个值,对吧?如何选择多个键和每个键后面的列表?
<field name="http.user_agent" showname="User-Agent: CORE/6.506.4.1 OpenCORE/2.02 (Linux;Android 2.2)\r\n" size="62" pos="542" show="CORE/6.506.4.1 OpenCORE/2.02 (Linux;Android 2.2)" value="557365722d4167656e743a20434f52452f362e3530362e342e31204f70656e434f52452f322e303220284c696e75783b416e64726f696420322e32290d0a"/>
<field name="http.user_agent" showname="User-Agent: HTC Streaming Player htc_wwe / 1.0 / htc_vivo / 2.3.5\r\n" size="67" pos="570" show="HTC Streaming Player htc_wwe / 1.0 / htc_vivo / 2.3.5" value="557365722d4167656e743a204854432053747265616d696e6720506c61796572206874635f777765202f20312e30202f206874635f7669766f202f20322e332e350d0a"/>
<field name="http.user_agent" showname="User-Agent: AppleCoreMedia/1.0.0.8C148 (iPad; U; CPU OS 4_2_1 like Mac OS X; sv_se)\r\n" size="85" pos="639" show="AppleCoreMedia/1.0.0.8C148 (iPad; U; CPU OS 4_2_1 like Mac OS X; sv_se)" value="557365722d4167656e743a204170706c65436f72654d656469612f312e302e302e38433134382028695061643b20553b20435055204f5320345f325f31206c696b65204d6163204f5320583b2073765f7365290d0a"/>
Run Code Online (Sandbox Code Playgroud)
我得到的网址样本如上所列.我想知道Python中是否有任何模块可用于解析用户代理.我想得到这些样本的输出,如:
Android
HTC Streaming player
ipad
Run Code Online (Sandbox Code Playgroud)
如果它是PC用户,我想获得Web浏览器类型.
我有一个这样的列表:
all = [[a,b,c,d],[r,d,g,s],[e,r,a,b],[p,o,i,u]....(more similar items)]
Run Code Online (Sandbox Code Playgroud)
我想有多少个项目是其中一样的,所以我需要比较all[0]
用all[1],all[2]...all[(len(all)-1)]
,然后用all[1]
与比较all[2],all[3]...all[(len(all)-1)]
,然后all[2]
与比较all[3],all[4],...all[(len(all)-1)]
我试过这样的事情:
for i in range(len(all)):
print len(all[i] & all[i+1]) ##how many identical items shared by all[0] and all[1]
print len(all[i+1] & all[i+2])
Run Code Online (Sandbox Code Playgroud)
但不知道如何继续,我想得到的结果是:
item1 has 3 same values with item2,
has 4 same values with item3,
has 1 same values with item4....
item2 has 3 same values with item1,
has 2 same values with item3,
etc
Run Code Online (Sandbox Code Playgroud) 我想使用Python连接到两个数据库,稍后使用两个数据库中的表.我怎样才能做到这一点?以下代码是否正确?
con = mdb.connect(host=MY_HOST, user=MY_USER, passwd=MY_PASS, db1=MY_DB1, db2=MY_DB2)
Run Code Online (Sandbox Code Playgroud) 我想检查字符串是否只包含AZ和az以及0-9和下划线和短划线(_ - )
还有其他任何特殊标志!"#\%不应该包含在内
我怎么写正则表达式?
并使用match
或?
我的字符串如下所示:QOIWU_W QWLJ2-1
我有一个这样的列表:
[[(video1,4)], [(video2,5),(video3,8)], [(video1,5)], [(video5, 7), (video6,9)]...]
Run Code Online (Sandbox Code Playgroud)
此列表中的每个项目可能包含单个数据对或元组,我想将此列表更改为
[(video1,4),(video2,5),(video3,8),(video1,5),(video5,7),(video6,9)...]
Run Code Online (Sandbox Code Playgroud)
然后这样做:
for item in list:
reqs = reqs + item[1]
b.append(item[0])
c = set(b)
Run Code Online (Sandbox Code Playgroud)
我不知道如何更改列表结构,或者如何根据原始列表进行相同的计算?
我有两个元组列表,例如:
a = [(1,2,3),(4,5,6),(7,8,9)]
b = [(1,'a'),(4,'b'),(7,'c')]
Run Code Online (Sandbox Code Playgroud)
a和b中每个元组的第一个元素是匹配的,我想得到一个这样的列表:
merged = [(1,2,3,'a'),(4,5,6,'b'),(7,8,9,'c')]
Run Code Online (Sandbox Code Playgroud)
也许我会有另一个列表,如:
c = [(1,'xx'),(4,'yy'),(7,'zz')]
Run Code Online (Sandbox Code Playgroud)
并在以后合并到"合并"列表,我尝试了"zip"和"map",这不适合这种情况.