我正在使用Numpy将数据存储到矩阵中.来自R background,有一种非常简单的方法可以在行/列或矩阵两者上应用函数.
python/numpy组合有类似的东西吗?编写我自己的小实现并不是一个问题,但在我看来,我提出的大多数版本将比任何现有的实现效率低得多/内存密集.
我想避免从numpy矩阵复制到局部变量等,这可能吗?
我试图实现的函数主要是简单的比较(例如,某列的多少元素小于数字x或者有多少元素的绝对值大于y).
根据文档,在Python 2.7.3中,shlex应该支持UNICODE.但是,当运行下面的代码时,我得到:UnicodeEncodeError: 'ascii' codec can't encode characters in position 184-189: ordinal not in range(128)
难道我做错了什么?
import shlex
command_full = u'software.py -fileA="sequence.fasta" -fileB="??????.fasta.txt" -output_dir="..." -FORMtitle="tst"'
shlex.split(command_full)
Run Code Online (Sandbox Code Playgroud)
确切的错误如下:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 275, in split
lex = shlex(s, posix=posix)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shlex.py", line 25, in __init__
instream = StringIO(instream)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 44-49: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
这是我的mac使用python从macports输出的.我在使用"native"python 2.7.3的Ubuntu机器上得到完全相同的错误.
我正在尝试为图表添加边缘标签.这一切都运作良好,唯一的问题是当两条边相交时 - 我只看到其中一个标签碰巧重叠.

正如您所看到的那样,显示了hphob-alpha标签,但没有显示极性-β标签(我的猜测是它在前面提到的正确).
我找不到任何关于如何重新定位标签的文档,任何建议如何设置某种偏移来移动标签?
用于生成图表的代码:
try:
import matplotlib.pyplot as plt
except:
raise
import networkx as nx
G=nx.Graph()
a="hphob"
b="polarity"
c="alpha"
d="beta"
G.add_edge(a,b,weight=0.5)
G.add_edge(b,c,weight=0.5)
G.add_edge(c,d,weight=0.5)
G.add_edge(a,d,weight=0.5)
G.add_edge(a,c,weight=0.5)
G.add_edge(b,d,weight=0.5)
pos=nx.spring_layout(G) # positions for all nodes
# nodes
nx.draw_networkx_nodes(G,pos,node_size=7000, node_color="white")
# edges
nx.draw_networkx_edges(G,pos,
width=6,alpha=0.5,edge_color='black')
# labels
nx.draw_networkx_labels(G,pos,font_size=20,font_family='sans-serif')
nx.draw_networkx_edge_labels(G,pos,
{
(a,b):"x", (b,c):"y", (c,d):"w", (a,d):"z", (a,c):"v", (b,d):"r"
}
)
plt.axis('off')
plt.savefig("weighted_graph.png") # save as png
plt.show() # display
Run Code Online (Sandbox Code Playgroud) 我正在尝试为HTML5验证的表单提供自定义样式.我能够覆盖消息并调整表单,但是,我无法摆脱IE11中无效元素周围的红色边框.
Chrome表现得像我喜欢的那样,没有任何边框,但是IE11和Firefox在场地周围显示红色.
我试过添加以下内容:
input:required {...}
input:valid {...}
input:invalid {...}
Run Code Online (Sandbox Code Playgroud)
但是没有成功 - 我只能添加额外的边框,而不是覆盖/删除原来的边框.我还可以看到他们有不同的操作模式 - 我试图摆脱的红色边框仅在我按下提交按钮后才能在IE中应用.表单仅以石灰边框开头,当我按下提交时,还会添加红色边框.放入正确的数据会立即删除两个边框(这在IE11中).另一方面,Firefox从应用红色和石灰边框开始.
完整示例:http://jsfiddle.net/zbyzhbdm/5/
有没有办法删除红色边框/将其设置为不同的颜色?我真的想使用原生HTML5验证而不依赖我自己的验证脚本.
更新:可以说服Firefox使用以下覆盖删除边框:
input:invalid {
box-shadow: none !important;
}
Run Code Online (Sandbox Code Playgroud)
(http://jsfiddle.net/zbyzhbdm/7/上的详细信息)
IE仍然要去弄清楚.
在代码审查期间,我偶然发现了一个有趣的问题.由于Python中的所有内容都非常动态,因此可以执行以下操作:
False = True
if False:
print "Yes please!"
Run Code Online (Sandbox Code Playgroud)
哪个行为正确并打印出来Yes please!.在理解这种行为背后的原理的同时,是否有任何自动代码检查器可以检测到这种行为?
我总是可以在检查的"假"的存在locals()或globals()其他方式达到相同的效果或过多.虽然这可能与传统软件开发无关,但有时在数据分析管道等中会出现类似于他的错误.
我的应用程序是在python和瓶子框架中开发的.我使用以下代码段来获取页面访问者的IP地址:
user_ip = bottle.request.environ['REMOTE_ADDR']
Run Code Online (Sandbox Code Playgroud)
它在我的本地机器上工作正常,但是,在部署到AWS Beanstalk实例后,我认为我正在获取负载均衡器IP,因为user_ip读取类似于10.48.95.234的内容.
我的想法是否正确?如果是这样,有没有办法获得真实访客的IP地址?
python ×4
bottle ×1
firefox ×1
html5 ×1
map-function ×1
matplotlib ×1
networkx ×1
numpy ×1
shlex ×1
unicode ×1
validation ×1