我需要执行一种特殊类型的张量收缩.我想要这样的东西:
A_ {bg} = Sum_ {a,a',a''}(B_ {a} C_ {a'b} D_ {a''g})
其中所有指数可以有超过一个,一个值0,1和总和 '和 '' 进行对所有情况,其中A + A '+ A''= 1或A + A '+ A'" = 2.所以它就像爱因斯坦求和公约的反面:我只想在三个指数中的一个与其他指数不同时求和.
此外,我要一些挠性与不被求和索引的数目:在本例中得到的张量具有2个索引,并且总和是在3张量,一个带一个索引元件的产品的另外两个与两个索引.这些索引的数量会有所不同,所以一般来说我希望能写出这样的东西:
A _ {...} = Sum_ {a,a',a''}(B_ {a ...} C_ {a ...} D_ {a''...}})
我想指出索引的数量不是固定的,但是它是受控制的:我可以知道并指定每个张量中每个张量有多少个索引.
我试过np.einsum(),但显然我被迫在标准的爱因斯坦惯例中总结重复的指数,我不知道如何实现我在这里暴露的条件.
而且我不能用各种各样的东西写出来,因为正如我所说,所涉及的张量的索引数量并不固定.
有人有想法吗?
我会像这样编写我在这里编写的语言:
tensa = np.zeros((2,2))
for be in range(2):
for ga in range(2):
for al in range(2):
for alp in range(2):
for alpp in range(res(al,alp),prod(al,alp)):
tensa[be,ga] += tensb[al] * tensc[alp,be] * tensd[alpp,ga] …Run Code Online (Sandbox Code Playgroud) 在这段代码中
t1 = os.time()
do_something_slow()
t2 = os.time()
elapsed_diff = os.difftime(t2, t1)
elapsed_sub = t2 - t1
Run Code Online (Sandbox Code Playgroud)
什么情况下会elapsed_diff有所不同elapsed_sub?
我试图为Python创建一个无法正常工作的日志记录模块,因为它无法创建文件对象.
debug.py:
import os
import datetime
import globals
global fil
fil = None
def init(fname):
fil = open(fname, 'w+')
fil.write("# PyIDE Log for" + str(datetime.datetime.now()))
def log(strn):
currentTime = datetime.datetime.now()
fil.write(str(currentTime) + ' ' + str(os.getpid()) + ' ' + strn)
print str(currentTime) + ' ' + str(os.getpid()) + ' ' + strn
def halt():
fil.close()
Run Code Online (Sandbox Code Playgroud)
fil不会None像我得到的那样工作AttributeError.我也试过创建一个虚拟对象:
fil = open("dummy.tmp","w+")
Run Code Online (Sandbox Code Playgroud)
但是dummy.tmp文件被写入,即使init()之前log()被调用了.显然,您无法在已打开的文件上打开新文件.我试图关闭fil之前init(),但Python说它无法write()在关闭的文件上执行.
这是正在访问的代码 debug.py
if …Run Code Online (Sandbox Code Playgroud) 我有以下类,一个隐藏(或阴影)内置函数的方法.我希望文档包含一个"另请参见"部分,该部分链接到隐藏的内置函数.
classdef CatHelper
%CATHELPER Makes implementing vertcat/horzcat easy on a custom class
%
% See Also: cat
methods (Abstract)
obj = cat(obj, ndim, varargin);
end
end
Run Code Online (Sandbox Code Playgroud)
不幸的是,"see also"链接只是尝试在未记录的抽象方法上提供帮助CatHelper/cat.
如何指定我希望链接转到内置 cat函数?
我有这样一个数组:
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
);
Run Code Online (Sandbox Code Playgroud)
是否有一个函数可以'apple'从该数组中获取(第一个键)?或者我别无选择,只能这样做?
function firstkey($array)
{
for($array as $first)
{
return $first;
}
}
Run Code Online (Sandbox Code Playgroud) 我是python的新手,想以列表格式制作这样的东西,所以我可以使用csv writer.
["Structure1", "Structure2", ... "Structure50"]
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用"Structure "*50结构重复50次,但是如何将它放入列表中并附加一个数字?
谢谢!
我写了以下代码:
#define GATE(name, num)do{\
name##list[num] = #name;\
}while(0)
char* name[] = {"hello", "world", "byebye"};
int i;
for(i = 0; i < 3; i++)
{
GATE(name[i],0);
}
Run Code Online (Sandbox Code Playgroud)
显然,我无法得到我想要的GATE(name[0],0)被替换的东西hellolist[0] = "hello",但是name[0]list[0] = "hello",这会导致gcc错误.
我想知道如何使用宏制作我想要的东西?
我有一个名为"location"的字典,如下所示:
{
'WA': [
'47.3917',
'-121.5708'
],
'VA': [
'37.7680',
'-78.2057'
],
...
}
Run Code Online (Sandbox Code Playgroud)
我想转换为值为float的dic,所以它看起来像:
{
'WA': [
47.3917,
-121.5708
],
'VA': [
37.7680,
-78.2057
],
...
}
Run Code Online (Sandbox Code Playgroud)
我试过了
for key in location.keys():
location[key] = float(location[key][0,1])
print location
Run Code Online (Sandbox Code Playgroud)
它给了我一个恐怖,"float()参数必须是一个字符串或数字"
我该如何解决这个问题?
我理解在systemverilog中使用case语法时,我们需要完全描述所有组合或添加默认值以避免锁存.
这是我的示例代码,没有生成锁存器:
module test(
input logic[2:0] op,
output logic a,b,c
);
always_comb
begin
case(op)
0: {a,b,c} = {1'b1,1'b1,1'b0};
1: {a,b,c} = {1'b1,1'b0,1'b0};
2: {a,b,c} = {1'b0,1'b1,1'b0};
default: {a,b,c} = {1'b0,1'b0,1'b0};
endcase
end
endmodule
Run Code Online (Sandbox Code Playgroud)
正如我在开头所说,如果添加默认值,则不会生成锁存器.请查看第二个代码,这是一个ALU设计:
module ALU(
output logic[31:0] Result,
output logic Zero, Overflow, Negative, Carryout,
input logic [5:0]ALUOp_i,
input logic [31:0] ALU_A_i, ALU_B_i,
input logic [4:0] Shamt
);
logic [31:0] adder_b;
always_comb
begin
casez(ALUOp_i)
/*Add_trap*/ 0,1: {Carryout,Result} = {ALU_A_i[31],ALU_A_i} + {ALU_B_i[31],ALU_B_i};
/*Add_notrap*/
/*Subtrap*/ 2,3:
/*Sub_notrap*/ begin
adder_b = ALU_B_i ^ …Run Code Online (Sandbox Code Playgroud) 考虑M形状的numpy ndarray (比如说)(a,b,c)和坐标列表[(b0,c0),(b1,c1),...,(bn,cn)].
我想要以下矢量集合:[M[:,b0,c0],M[:,b1,c1],...,M[:,bn,cn]].如何通过列表理解实现这一目标?
编辑:我需要一个适用于任意数量维度的解决方案,即在案例(例如)中返回类似上面列表的列表M.shape = (a,b,c,d) and coordinates = [(b0,c0,d0),...,(bn,cn,dn)],以及更高维度的案例.