我有一个矩阵 M1 ,其中每一行都是一个与时间相关的信号。
我还有另一个相同维度的矩阵 M2,其每一行也是一个时间相关信号,用作“模板”,用于识别第一个矩阵中的信号形状。
我想要一个列向量 v,其中 v [i] 是 M1 第 i 行和 M2 第 i 行之间的相关性。
我研究了 numpy 的 corrcoef 函数并尝试了以下代码:
import numpy as np
M1 = np.array ([
[1, 2, 3, 4],
[2, 3, 1, 4]
])
M2 = np.array ([
[10, 20, 30, 40],
[20, 30, 10, 40]
])
print (np.corrcoef (M1, M2))
Run Code Online (Sandbox Code Playgroud)
打印:
[[ 1. 0.4 1. 0.4]
[ 0.4 1. 0.4 1. ]
[ 1. 0.4 1. 0.4]
[ 0.4 1. 0.4 1. ]] …Run Code Online (Sandbox Code Playgroud) 我正在开发Transcrypt Python to JavaScript 编译器的3.7.1 版。发布过程的一部分是出货测试,其中 Transcrypt 与 CPython 背靠背测试。
它曾经在 CPython 3.7 的 beta 版中完美运行,但在发布时出现了问题。
该程序:
from dataclasses import dataclass
from typing import ClassVar
@dataclass
class Test:
x: ClassVar = 10
y: int = 10
t = Test ()
t.x = 20
print (repr (t))
Run Code Online (Sandbox Code Playgroud)
用于打印(使用 CPython):
Test(x=20, y=10)
Run Code Online (Sandbox Code Playgroud)
但是随着它打印的发布(再次仅使用 CPython):
Test(y=10)
Run Code Online (Sandbox Code Playgroud)
所以它从表示中遗漏了类变量 x。谁能告诉我这个改变是否是故意的,我在哪里可以找到证明它合理的讨论?
有了这个变化,Transcrypt 的行为与 CPython 不同,这是我不想要的。所以我想知道我应该采用 Transcrypt 还是应该将其视为 CPython 回归并等待它被解决。
Transcrypt 在远程 git 更改上触发,从源提取文件的最新加密版本并在本地解密。
我弄乱了本地密钥,因此解密失败,但加密的转加密相关文件的最新 git 版本仍然存在于我的本地计算机上。
我意识到我的错误并修复了我的本地转加密加密密钥。
现在,Git 认为这些文件是最新版本(与远程源相比),但它们是加密的。Git 和 transcrypt 处于先有鸡还是先有蛋的情况:我无法强制 git 从远程源重新拉取文件,也无法让 transcrypt 重试解密。
我尝试过切换分支,有时确实有效。这并不总是有效,因为与转加密相关的文件在远程分支上不一定不同。我能够将当前分支克隆到新分支中,修改每个加密文件,然后在本地拉取该新分支。这让 Transcrypt 松动了,并且成功了。必须有一种更优雅的方法来做到这一点!
我需要运行什么命令(git 和/或 transcrypt)才能再次解密我的本地文件?
我有一个编写数学表的代码,我觉得有可能减少,因为我有三个相同的代码重复,但每个if/elif语句只有略微不同的解决方案.
num=10
x=str(input("Enter Math Operation (+, -, *): "))
while (x != "+" and x != "-" and x != "*"):
x=str(input("\tEnter Math Operation: "))
if x=="+":
for table in range(1,11):
print(str(num),str(x),table,"=",num+table)
elif x=="-":
for table in range(1,11):
print(str(num),str(x),table,"=",num-table)
elif x=="*":
for table in range(1,11):
print(str(num),str(x),table,"=",num*table)
Run Code Online (Sandbox Code Playgroud)
请告诉我如何压缩此代码.
2.5 // 2.0返回Python float而不是intPython 3.x 的理由是什么 ?如果它是一个整数值,为什么不把它放在一个类型int对象中呢?
[编辑]
我正在寻找这样一个事实的理由.以这种方式做出的论点是什么?还没找到它们.
[EDIT2]
这种关系floor比"地板划分"这个术语更有问题!
floor(3.5 / 5.5) == 0 (INT)
而
3.5 // 5.5 == 0.0 (浮动)
还不能辨别出任何逻辑:(
[EDIT3]
来自PEP238:
在统一模型中,整数1应该与浮点数1.0无法区分(除了它的不精确性),并且两者在所有数字上下文中的行为应该相同.
一切都非常好,但像Numpy这样不重要的图书馆在提供花车作为指数时抱怨,即使它们是不可或缺的.所以'难以区分'还不是现实.花了一些时间来寻找与此相关的错误.我很惊讶地了解了它的真实本质//.从文档(对我来说)来说并不是那么明显.
由于我对Python 3.x的设计非常信任,我认为我一定错过了//以这种方式定义的非常明显的理由.但现在我想知道......