我试图使用python重新创建我的excel图表之一,但现在不断撞墙:
这是我尝试过的代码:
import matplotlib.pyplot as plt
from numpy import arange
myfile = open(r'C:\Users\user\Desktop\Work In Prog\Alpha Data.csv', 'r')
label = [] # this is a string of the label
data = [] #this is some integer, some are the same value
for lines in myfile:
x = lines.split(',')
label.append(x[1])
data.append(x[4])
dataMin = float(min(data))
dataMax = float(max(data))
pos = arange(dataMin, dataMax, 1)
p1 = plt.bar(pos, data, color='red', height=1)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我阅读了有关如何bisect在元组列表上使用的问题,并使用该信息来回答该问题。它有效,但我想要一个更通用的解决方案。
由于bisect不允许指定key函数,如果我有这个:
import bisect
test_array = [(1,2),(3,4),(5,6),(5,7000),(7,8),(9,10)]
Run Code Online (Sandbox Code Playgroud)
我想找到x > 5这些(x,y)元组的第一个项目(根本不考虑y,我目前正在这样做:
bisect.bisect_left(test_array,(5,10000))
Run Code Online (Sandbox Code Playgroud)
我得到了正确的结果,因为我知道noy大于 10000,所以将bisect我指向(7,8). 如果我1000换了,那就错了。
对于整数,我可以做
bisect.bisect_left(test_array,(5+1,))
Run Code Online (Sandbox Code Playgroud)
但在可能有浮点数的一般情况下,如何在不知道第二个元素的最大值的情况下做到这一点?
test_array = [(1,2),(3,4),(5.2,6),(5.2,7000),(5.3,8),(9,10)]
Run Code Online (Sandbox Code Playgroud)
我试过这个:
bisect.bisect_left(test_array,(min_value+sys.float_info.epsilon,))
Run Code Online (Sandbox Code Playgroud)
它没有用,但我试过这个:
bisect.bisect_left(test_array,(min_value+sys.float_info.epsilon*3,))
Run Code Online (Sandbox Code Playgroud)
它奏效了。但这感觉就像一个糟糕的黑客。任何干净的解决方案?
我知道索引函数的工作方式如下:
list = ['dog','cat','pizza','trump', 'computer', 'trump']
print list.index('trump')
Run Code Online (Sandbox Code Playgroud)
输出将是3.但现在我希望他打印另一个'特朗普'字符串,它来自2个对象.但如果我会做同样的命令:
print list.index('trump')
Run Code Online (Sandbox Code Playgroud)
他将再次打印3 - 他看到的第一个特朗普.那么如何移动索引函数的'offset',所以她会在索引5中检测到另一个特朗普?非常感谢你们!
可以使用以下命令使用 package中的Rfunction 函数加载多个包:p_loadpacman R
pacman::p_load("ggplot2", "lme4")
Run Code Online (Sandbox Code Playgroud)
但是,我想使用这样的命令
Packages <- c("ggplot2", "lme4")
pacman::p_load(Packages)
Run Code Online (Sandbox Code Playgroud)
这是行不通的。想知道如何实现这一点?
我已经为课程安装了 Git Bash、python 3.6 和 Anaconda,这要求我在 Jupyter 中使用 Unix 命令,例如 !ls、!cat、!head 等。但是,对于这些命令中的每一个,我得到(例如):
'ls' 不是内部或外部命令,也不是可运行的程序或批处理文件。
我使用的是 Windows 10。我该怎么做才能继续学习课程?谢谢!
我注意到当我在列表理解中使用递归时会发生一些奇怪的事情.如果递归过深,解释器似乎空闲(我等了5分钟,什么都没发生).
为了这个问题,假设我想要展平嵌套列表(我没有 - 但它是一个简短的代码示例,说明了我遇到的问题):
def flatten(x):
if isinstance(x, list):
return [a for i in x for a in flatten(i)]
else:
return [x]
Run Code Online (Sandbox Code Playgroud)
使用辅助函数创建嵌套列表:
def wrap_in_lists(value, depth):
a = value
for _ in range(depth):
a = [a]
return a
Run Code Online (Sandbox Code Playgroud)
使用时效果很好:
>>> flatten(wrap_in_lists(1, 2**10))
[1]
Run Code Online (Sandbox Code Playgroud)
但是当我使用时它完全停止:
>>> flatten(wrap_in_lists(1, 2**11))
# Nothing happens, no exception, no result, no segfault, ...
Run Code Online (Sandbox Code Playgroud)
奇怪的是,使用生成器的类似方法不会显示此行为:
def flatten(l):
def inner(x):
for item in x:
if isinstance(item, list):
yield from inner(item)
else:
yield item
return list(inner(l))
>>> flatten(wrap_in_lists(1, …Run Code Online (Sandbox Code Playgroud) 我最近被要求做这个任务(学校):
编写一个循环生成器,它以有限迭代器为参数,并在无限循环中生成可迭代器
所以我做了 :
import itertools
def loop(l):
for eleme?????nt in itertools.cycle(l):
yield element
Run Code Online (Sandbox Code Playgroud)
我的一位同学做了:
def loop(l):
while True:
?? for element in l:
yield element
Run Code Online (Sandbox Code Playgroud)
我想知道两者之间的主要区别是什么,以及是否有一种更“pythonic”的方式来编写像这样简单的东西。
Python 3.7.1:grep使用 subprocess.Popen调用以从日志文件中提取错误。打印到屏幕时,不处理换行符 \n。
例子
a = subprocess.Popen(["grep", "ERR", "errors.log"], stdout=subprocess.PIPE)
print(a.stdout.read())
Run Code Online (Sandbox Code Playgroud)
输出
ERR 1 ret: 31113\nERR 2 ret: 35523\nERR 3 ret: 3810 (etc.)
Run Code Online (Sandbox Code Playgroud)
无法想象为什么不处理换行符。我希望这样:
ERR 1 ret: 31113
ERR 2 ret: 35523
ERR 3 ret: 3810
(etc.)
Run Code Online (Sandbox Code Playgroud)
一直在梳理“网络”以获得答案,但没有运气。谢谢:^)
参考:
我需要能够在Redis中进行以下操作:
简而言之,这是一个“平衡”:如果我在此字段中有足够的空间,则可以使用它,否则,不可以。有时候,它必须减少很多余额
为此,我制作了一个LUA脚本来计算减量的结果,然后使用该结果修改字段。我选择此解决方案是因为:
我面临的问题:
输入“值”的格式如下:Array <{键:字符串,字段:字符串,值:字符串// //实际上是一个BigNumber,具有字符串格式}>
this.redisClient.eval(`
${luaBigNumbers}
local operations = cjson.decode(KEYS[1])
local isStillValid = true
local test
for k, v in pairs(operations) do
local temp = BigNum.new(redis.call('hget', v.key, v.field))
local res = BigNum.mt.add(temp, BigNum.new(v.value))
if BigNum.mt.lt(res, BigNum.new('0')) then
isStillValid = false
end
end
if isStillValid then
for k, v in pairs(operations) do
local temp = BigNum.new(redis.call('hget',v.key, v.field))
redis.call('hset', v.key, v.field, …Run Code Online (Sandbox Code Playgroud) 我的程序看起来像这样:
import re
# Escape the string, in case it happens to have re metacharacters
my_str = "The quick brown fox jumped"
escaped_str = re.escape(my_str)
# "The\\ quick\\ brown\\ fox\\ jumped"
# Replace escaped space patterns with a generic white space pattern
spaced_pattern = re.sub(r"\\\s+", r"\s+", escaped_str)
# Raises error
Run Code Online (Sandbox Code Playgroud)
错误是这样的:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/home/swfarnsworth/programs/pycharm-2019.2/helpers/pydev/_pydev_bundle/pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "/home/swfarnsworth/programs/pycharm-2019.2/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in …Run Code Online (Sandbox Code Playgroud) python ×7
jupyter ×2
python-3.x ×2
bar-chart ×1
bisect ×1
comparison ×1
git ×1
grep ×1
line-breaks ×1
list ×1
loops ×1
lua ×1
offset ×1
package ×1
printing ×1
python-2.7 ×1
python-3.7 ×1
r ×1
recursion ×1
redis ×1
regex ×1
tuples ×1
windows ×1