我试图使用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。我该怎么做才能继续学习课程?谢谢!
这个问题解释了它,但是Python中的集差运算的时间复杂度是多少?
前任:
A = set([...])
B = set([...])
print(A.difference(B)) # What is the time complexity of the difference function?
Run Code Online (Sandbox Code Playgroud)
我的直觉告诉我,O(n)因为我们可以遍历集合 A 并且对于每个元素,查看它是否在恒定时间内(使用哈希函数)包含在集合 B 中。
我对吗?
(这是我遇到的答案:https : //wiki.python.org/moin/TimeComplexity)
我还没有看到这样做的方法.我在Python 3.6.1(v3.6.1:69c0db5050,2017年3月21日,01:21:04).虽然我们需要在Python 2上使用它,但是Sierra下的MacOS.
我有一个自定义类,它看起来像一个带有子字段解码的int.出于我自己的原因,我希望能够做到这两样的事情
inst * 4
Run Code Online (Sandbox Code Playgroud)
和
inst.subfield << 1
Run Code Online (Sandbox Code Playgroud)
(其中子字段是inst的属性).这些对象高度过载,例如打印inst将转储子字段以供查看.
这一切都是通过重载所有自定义函数来处理数学和与其他对象的交互来完成的.一般来说,它的效果非常好,有一个明显的例外:打印.在大多数情况下,用户可以忘记这不是一个真正的整数并使用它像一个,但使用整数打印命令将无法正常工作:
print("%#x"%inst)
TypeError: %x format: an integer is required, not CustomType
Run Code Online (Sandbox Code Playgroud)
我确实已经__int__重载,并按int(inst)预期返回一个整数.
有没有办法让这项工作?这是一个小麻烦,但我想解决一个问题.
另外,我确实已经__format__实施了.所以'{0:x}'.format(inst)工作,但上面的印刷没有.
谢谢!
我一直在用 PIL 在 python 中搞乱,我正在研究一个在 4 个象限中镜像和图像的函数。显然我遇到了错误,而且我似乎无法弄清楚。我的功能如下:
def mirror_four(image):
x = image.size[0]
y = image.size[1]
temp = Image.new("RGB", (image.size[0], image.size[1]), "black")
tl = image
tr = mirror_left(image)
bl = mirror_verticle(image)
br = mirror_verticle(tr)
image.paste(temp,(0,0,int(x/2),int(y/2)),tl)
image.paste(temp,(int(x/2),0,0,int(y/2)),tr)
image.paste(temp,(0,int(y/2),int(x/2),0),bl)
image.paste(temp,(x/2,y/2,x,y),br)
return temp
Run Code Online (Sandbox Code Playgroud)
这将返回错误:ValueError:图像不匹配
我有点迷失,PIL 文档对我没有多大帮助。
为什么提出此问题呢 ?
我试图回答这个问题:检查所有值是否作为字典中的键存在,并提供比生成器理解更好的东西all(Python 循环,即使在理解中,与某些函数执行的隐式循环相比,也会减慢执行速度):
all(i in bar for i in foo)
Run Code Online (Sandbox Code Playgroud)
其中bar是一个字典,foo是一个列表,通过使用set.issubset(转换为setoffoo才能使用foo.issubset(bar)),并且没有成功击败解决all方案的时代(除非两个容器都转换为sets)。
我的问题:
来自以下文档set:
请注意,union()、intersection()、difference() 和 symmetry_difference()、issubset() 和 issuperset() 方法的非运算符版本将接受任何 iterable 作为参数。相反,基于运算符的对应部分需要设置其参数。这排除了像 set('abc') 和 'cbs' 这样容易出错的结构,有利于更具可读性的 set('abc').intersection('cbs')。
好的,但性能实际上取决于参数的类型,即使复杂性并不如此(Python 的复杂性 issubset()):
import timeit
foo = {i for i in range(1, 10000, 2)}
bar = foo - {400}
n=10000
x = timeit.timeit(setup="foo = {str(i) for i …Run Code Online (Sandbox Code Playgroud) 下面的脚本是抽象的。我的问题是关于使用threading.Lock()
锁定限制了对“共享资源”的访问,但我对这能走多远感到紧张。我有对象属性,它们是在这个例子中具有数组属性的对象列表。在某些情况下,依赖会走得更远。
是否Lock()“知道”需要锁定的所有内容?
还显示了下面脚本的输出。脚本的目的主要是为了讨论 - 它不会失败,但我不相信它会锁定它需要的一切。
start: [array([0, 1]), array([0, 1, 2]), array([0, 1, 2, 3])]
append an object
done!
finish: [array([505, 605]), array([10, 11, 12]), array([10, 11, 12, 13]), array([5])]
import time
from threading import Thread, Lock
import numpy as np
class Bucket(object):
def __init__(self, objects):
self.objects = objects
class Object(object):
def __init__(self, array):
self.array = array
class A(Thread):
def __init__(self, bucket):
Thread.__init__(self)
self.bucket = bucket
def run(self):
nloop = 0
locker …Run Code Online (Sandbox Code Playgroud) python ×9
python-2.7 ×2
set ×2
bar-chart ×1
bisect ×1
comparison ×1
git ×1
image ×1
jupyter ×1
list ×1
offset ×1
package ×1
performance ×1
r ×1
tuples ×1
valueerror ×1
windows ×1