问候,
我不确定这是不是一个愚蠢的问题.
假设我有3个numpy数组,A1,A2,A3和3个浮点数,c1,c2,c3
我想评估B = A1*c1 + A2*c2 + A3*c3
numpy计算这个例如,
E1 = A1*c1
E2 = A2*c2
E3 = A3*c3
D1 = E1+E2
B = D1+E3
Run Code Online (Sandbox Code Playgroud)
还是比这更聪明?在c ++中,我有一种巧妙的方法来抽象这种操作.
我定义了一系列通用'LC'模板函数,LC用于线性组合,如:
template<class T,class D>
void LC( T & R,
T & L0,D C0,
T & L1,D C1,
T & L2,D C2)
{
R = L0*C0
+L1*C1
+L2*C2;
}
Run Code Online (Sandbox Code Playgroud)
然后将其专门用于各种类型,
例如,对于数组代码看起来像
for (int i=0; i<L0.length; i++)
R.array[i] =
L0.array[i]*C0 +
L1.array[i]*C1 +
L2.array[i]*C2;
Run Code Online (Sandbox Code Playgroud)
从而避免必须创建新的中间阵列.
这可能看起来很乱,但效果确实很好.
我可以在python中做类似的事情,但我不确定它是否是必需的.
提前感谢您的任何见解.-缺口
据我所知,我需要使用url编码的内容与urllib一起发布.使用urllib发布时是否可以使用application/json内容类型?
如何在java servlet中将XML转换为JSON.
<?xml><SOAP-ENV:Envelope xmlns:xsd= "http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:HNS="http://tempuri.org/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header><HNS:ROClientID SOAP-ENV:mustUnderstand="0">{6C9A8E69-2018-4090-8FA7-DEB98300E102}</HNS:ROClientID></SOAP-ENV:Header><SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ro="http://tempuri.org/"><NS1:GetStationListResponse xmlns:NS1="urn:WOOSServices-WOrbitService"><Stations xsi:type="xsd:string"></Stations><Result xsi:type="xsd:string">{
"MOColmns": [
{
"MOTitle": "Description"
},
{
"MOTitle": "station_name"
},
{
"MOTitle": "StationID"
},
{
"MOTitle": "StationINT"
}
]
}</Result></NS1:GetStationListResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>";
String xml = "<xx yy='nn'><mm>zzz</mm></xx>";
JSONArray json = (JSONArray) XMLSerializer.read(xml);
System.out.println( json );
Run Code Online (Sandbox Code Playgroud)
请帮我.
i= "March 31st 2013 ntp[22123] Time server offset -.00354 sec"
i= "March 1st 2013 ntp[22485] Time server offset -.0070 sec"
Run Code Online (Sandbox Code Playgroud)
字符串看起来相同,但有时字符数会有所不同。如果我尝试仅提取字符串的最后一部分,它将无法工作"-.0070 sec" with i=i [-11:]。
我想知道我是否可以搜索单词"offset",找到它在字符串中的位置,然后用它来消除字符串的其余部分以保留"-.00354 sec" or "-.0070 sec".
例如,有 46 个字符,"March 31st 2013 Time server offset -.00354 sec"并且offset是字符串的第 28 位的开始。从字符串开头算起的总共 34 个字符将被删除。
def deadlines(t):
'''shows pretty time to deadlines'''
fmt = '%a %d %m %Y %I:%M %p %Z'
dt = datetime.strptime( t , fmt )
print 'dt ', repr(dt)
first = 'Sun 11 May 2014 05:00 PM PDT'
deadlines(first)
Run Code Online (Sandbox Code Playgroud)
ValueError:时间数据'Sun 11 May 2014 02:00 PM PDT'与格式'%a%d%m%Y%I:%M%p%Z'不匹配
这有什么不对吗?
我正在将一些代码从C转换为numpy,这个特定的代码段显示出一些显着的减速.似乎只是用numpy数组中的和来替换内部循环是不够的.有没有人建议恢复一些原始性能?
我宁愿避免使用scipy.weave.我想知道我是否能以某种方式使用卷积函数,但文档有点薄,并且似乎有几个选项(scipy.signal,ndimage,numpy.convolve等).是否可以使用爱因斯坦求和函数(einsum)或tensordot?对于tensordot我认为我需要分别做X,Y,Z?
我已经将这些值设置为随机,因此可以剪切和粘贴,但我应该注意MX,MY和MZ的某些结构M(i,j)是|i-j|和M(i,j)=M(j,i)
一般来说,回应一些建议的编辑 n[0] != n[1] != n[2]
n = np.array((50,50,50))
np.random.seed(1)
A = np.random.random(n)
C = np.zeros_like(A)
MX = np.random.random((n[0],n[0]))
MY = np.random.random((n[1],n[1]))
MZ = np.random.random((n[2],n[2]))
for i in xrange(n[0]):
for j in xrange(n[1]):
for k in xrange(n[2]):
C[i,j,k]=(MX[i,:]*A[:,j,k]).sum() + (MY[j,:]*A[i,:,k]).sum() +(MZ[k,:]*A[i,j,:]).sum()
Run Code Online (Sandbox Code Playgroud) 我需要创建一个 IP 地址图并标记它们之间的边,我为此编写了下面的代码。列表,即 parseOutput() 的内容,看起来像这样:
('172.16.254.128', '216.58.208.206')
('216.58.208.206', '172.16.254.128')
('172.16.254.128', '216.58.208.226')
('216.58.208.226', '172.16.254.128')
('172.16.254.128', '8.8.8.8')
('8.8.8.8', '172.16.254.128')
('172.16.254.128', '216.58.208.227')
('172.16.254.128', '216.58.208.227')
('216.58.208.227', '172.16.254.128')
('172.16.254.128', '216.58.208.227')
('172.16.254.128', '216.58.208.227')
...
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,出现以下错误:
Traceback (most recent call last):
File "test.py", line 40, in <module>
g.add_nodes_from(nodeList)
File "/usr/local/lib/python2.7/dist-packages/networkx/classes/graph.py", line 429, in add_nodes_from
nn,ndict = n
ValueError: need more than 0 values to unpack
Run Code Online (Sandbox Code Playgroud)
import logging, sys, struct, binascii, socket
from scapy.all import *
import networkx as nx
import matplotlib.pyplot as plt
pkts=rdpcap("pcapFile.pcap",20)
def parsePcap():
IPList …Run Code Online (Sandbox Code Playgroud) 我正在使用一个数据集,我有时间和几种不同种类的微生物的浓度重复,所以它只是一个时间列和一堆数字为了这个问题.我每两个小时进行一次测量,有时我会连续进行两次测量,这些测量的时间戳会非常相似.对于那些类似的时间戳,我想取所有列的两行的平均值,并将这些平均值返回到之前放置两个值的新数据帧.
这是数据框的样子.时间戳已转换为数值,因为相对时间/日期无关紧要.你可以看到我正在谈论的一个例子,在第9和第10个索引有两个非常相似的时间
Time A1 A2 A3
0 0.000069 118.0 108.0 70.0
1 0.087049 189.0 54.0 89.0
2 0.156551 154.0 122.0 107.0
3 0.721516 129.0 148.0 148.0
4 0.789329 143.0 162.0 212.0
5 0.882743 227.0 229.0 149.0
6 0.964907 208.0 255.0 241.0
7 1.041424 200.0 241.0 222.0
8 1.731806 733.0 838.0 825.0
9 1.794340 804.0 996.0 954.0
10 1.794769 861.0 987.0 1138.0
Run Code Online (Sandbox Code Playgroud)
将时间列中的数字四舍五入到一个合理的值似乎是显而易见的,我可以使用一个groupby()函数(如果我实际上需要对它们进行分组)然后平均"重复"值,但我走了一条新的哲学道路我想使用pandas iterrows()函数逐行遍历行,并比较每两个连续的行并对它们应用一个条件来实现相同的结果.我已经到达了这样的东西,它没有错误代码,但似乎没有做任何事情.
for i, row in df.iterrows():
row2 = row + 1 #I feel like this …Run Code Online (Sandbox Code Playgroud) 我想合并两个Pandas DataFrames.如果item代码(例如A,B,C,d)是相同的,它们的属性a,b必须是相同的,但b是一个numpy的阵列或即unhashable列表.
富:
item a b
A 1 [2,0]
B 1 [3,0]
C 0 [4,0]
Run Code Online (Sandbox Code Playgroud)
酒吧:
item a b
A 1 [2,0]
D 0 [6,1]
Run Code Online (Sandbox Code Playgroud)
这就是我要的
code a b Foo Bar
A 1 [2,0] 1 1
B 1 [3,0] 1 0
C 0 [4,0] 1 0
D 0 [6,1] 0 1
Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的数据框:
df = pd.DataFrame({'month':['2017-09-27','2017-09-27','2017-09-28','2017-09-29'],'Cost':[100,500,200,300]})
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到这样的 df :
2017-09-27 2017-09-28 2017-09-29
100 200 300
500 NULL NULL
Run Code Online (Sandbox Code Playgroud)
提前致谢!