Visual Studio代码使用前缀r和R不同的方式突出显示字符串文字:
Match = re.search(r"\d{2} \d{4} \d{2}:\d{2}:\d{2})", Output)
Match = re.search(R"\d{2} \d(4} \d{2}:\d{2}:\d{2})", Output)
Run Code Online (Sandbox Code Playgroud)
这两个符号之间的含义是否有区别?用于不同的约定r和R?
我的问题是
np.array([2**31], dtype=np.uint32) >> 32
Run Code Online (Sandbox Code Playgroud)
不返回0,而是返回array([2147483648], dtype=uint32)。情况也是如此
np.right_shift(np.array([2**31], dtype=np.uint32), 32)
Run Code Online (Sandbox Code Playgroud)
(所以我相信这只是>>实现方式)。
有趣的是,所有这些替代方案似乎都能按预期工作,并返回了以下内容0:
print(
2**31 >> 32,
np.uint32(2**31) >> 32,
np.array(2**31, dtype=np.uint32) >> 32,
np.right_shift(2**31, 32),
np.right_shift([2**31], 32),
np.right_shift(np.uint32(2**31), 32),
np.right_shift(np.array(2**31, dtype=np.uint32), 32),
)
Run Code Online (Sandbox Code Playgroud)
特别是,代表2147483648和的Numpy数组之间有什么区别[2147483648]?
我已经在JavaScript(为什么<< << 32在JavaScript中不会导致0?)和C ++(右移运算符(1 >> 32)的奇怪行为,为什么'int >> 32`并不总是为零?)中看到这个问题。,但尚未在Python / Numpy中使用。实际上,Python和Numpy文档似乎都没有记录这种行为:
我正在使用 VS Code,当我在提交之前(通常在只读“(索引)”编辑器中)发现分阶段更改中的拼写错误时,我总是很恼火。因为解决它涉及打开原始文件,找到相同的位置,进行更改,保存文件,现在打开文件的差异,暂存此更改(而不是其他更改),然后完成提交。这对我来说似乎没有必要复杂。
我只想对索引进行编辑 - VS Code 等智能编辑器应该能够在后台执行必要的操作。但它不会让我,因为编辑器是只读的,而且我“无法在只读编辑器中编辑”
有一个关于此问题的 GitHub 问题#91065(以及#91274、#74149、#15785、#33681),称其“按设计”工作。但解释并没有真正向我解释:
差异的标题说
(Index)- 这意味着您已经分阶段进行了更改,并且您正在将分阶段的更改与头部修订版进行比较。
正确,但这并不能解释为什么 VS Code 不能进行进一步的更改。
这与工作文件不同,因为您可以选择性地暂存文件的某些部分,因此暂存版本可能看起来与工作文件不同
再次强调:正确,但这并不能解释为什么 VS Code 不应该首先经历编辑“工作文件”的麻烦而无法进行进一步的更改。
您无法编辑右侧,因为更改是暂存的
这对我来说不是一个解释。
您需要编辑工作文件并暂存这些更改,或者取消暂存并编辑文件
最后,我再次不明白为什么 VS Code 不能为我做到这一点。
但也许我忽略了一些事情。所以我的问题是,
我想ls在Windows 10的命令行中使用许多其他Linux工具.我知道有GnuWin32和其他二进制替代品,但这些都不如Windows子系统Linux(WSL)那样优雅; 包括更新机制.
使用WSL,可以ls ...从命令行调用bash -c "ls ...",这非常有效.但是,理想情况下,我只需ls在命令行上输入.我可以创建一个ls.bat基本上@bash -c "ls %*"- 但我必须为我想要导出的每个命令执行此操作.是否有更直接的方式将ls(和许多其他人)导出到命令行?
我想知道为什么a - b并a + (-b)给出相同的结果,但在不同的类型中numpy:
import numpy as np
minuend = np.array(1, dtype=np.int64)
subtrahend = 1 << 63
result_minus = minuend - subtrahend
result_plus = minuend + (-subtrahend)
print(result_minus == result_plus) # True
print(type(result_minus)) # float64
print(type(result_plus)) # int64
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我在哪里可以读到相关内容?
在一个空的.bat文件中尝试这个:
@echo off
echo Try space and arrow-down
pause
echo 1
pause
echo 2
pause
echo 3
pause
echo 4
pause
echo 5
Run Code Online (Sandbox Code Playgroud)
为什么任何箭头键都会触发两次连续暂停,而空格或字母只触发一次?
谢谢!别尔斯
我需要f(x)=exp(A*x)反复计算一个微小的,可变的列向量x和一个巨大的,恒定的矩阵A(许多行,几列).换句话说,x很少,但A*x很多.我的问题维度是这样的,它A*x占用了与exp()部分一样多的运行时间.
除了泰勒展开,并预先计算值的范围exp(y)(假设已知的范围内y的值A*x),这是我没有设法大大加快(同时保持精度)就什么MATLAB是对自己做的,我考虑分析性地重述问题,以便能够预先计算某些值.
例如,我发现了 exp(A*x)_i = exp(\sum_j A_ij x_j) = \prod_j exp(A_ij x_j) = \prod_j exp(A_ij)^x_j
这将允许我预先计算exp(A)一次,但是循环中所需的取幂与原始exp()函数调用一样昂贵,并且必须另外执行乘法(\ prod).
我还有其他想法可以遵循,或者我可能错过了MATLAB中的解决方案吗?
编辑:更多细节
A尺寸为81的是26873856(是的,那是巨大的),所以x是81乘1.
nnz(A) / numel(A)是0.0012,nnz(A*x) / numel(A*x)是0.0075.我已经使用稀疏矩阵来表示A,但稀疏矩阵的exp()不再稀疏.所以事实上,我存储x非稀疏和我计算的exp(full(A*x))结果是快/慢full(exp(A*x))(我认为无论A*x是非稀疏的,因为x是非稀疏的.)exp(full(A*sparse(x)))是一种稀疏的方法A*x,但速度较慢.甚至更慢的变体exp(A*sparse(x))(对于稀疏类型的非稀疏矩阵具有双倍的内存影响)和full(exp(A*sparse(x))(其再次产生非稀疏结果).
sx = sparse(x);
tic, …Run Code Online (Sandbox Code Playgroud) 在我使用 TensorFlow 进行 CNN 训练时,我将其用作Keras.losses.poisson损失函数。现在,我喜欢与损失函数一起计算许多指标,并且我观察到这Keras.metrics.poisson给出了不同的结果 - 尽管两者是相同的函数。
请参阅此处的一些示例输出:loss输出poisson具有不同的范围,0.5 与 0.12:
Epoch 1/20
Epoch 00001: val_loss improved from inf to 0.53228, saving model to P:\Data\xyz.h5
- 8174s - loss: 0.5085 - binary_crossentropy: 0.1252 - poisson: 0.1271 - mean_squared_error: 1.2530e-04 - mean_absolute_error: 0.0035 - mean_absolute_percentage_error: 38671.1055 - val_loss: 0.5323 - val_binary_crossentropy: 0.1305 - val_poisson: 0.1331 - val_mean_squared_error: 5.8477e-05 - val_mean_absolute_error: 0.0035 - val_mean_absolute_percentage_error: 1617.8346
Epoch 2/20
Epoch 00002: val_loss improved from 0.53228 to 0.53218, …Run Code Online (Sandbox Code Playgroud) 我喜欢MATLAB"智能缩进".Ctrl-A,Ctrl-I与我硬连线.然而,在我的一些-3000-行脚本,我有一个约100行代码段,我想不被MATLAB感动.
(为什么,你问?这就是原因:
x = ...
aaaaaaaaaaaaaaaaa ...
- ...
( ...
bbbbbbbbbbbbbb ...
+ ...
cccccccccccccccccccccc ...
);
Run Code Online (Sandbox Code Playgroud)
这是我的编码方式,这是两件事的区别,其中一件是aaaaaaaaaaaaaaaaa,另一件是一组括号,......等等.
那么,我如何教MATLAB不重新缩进这部分呢?
在Python中,
1 in {1} == True
Run Code Online (Sandbox Code Playgroud)
也就是False为什么?
我首先认为这是由于运算符优先级造成的,但我能找到的所有内容(见下文)告诉我表达式是从左到右计算的:
1 in {1}是TrueTrue == True是True此外,任何其他优先级都会导致TypeError:
{1} == True是False1 in False返回一个TypeErrorPython 从左到右计算表达式。
https://docs.python.org/3/reference/expressions.html#evaluation-order
还,
https://docs.python.org/3/reference/expressions.html#operator-precedence
python ×3
matlab ×2
numpy ×2
arrays ×1
auto-indent ×1
batch-file ×1
bit-shift ×1
editor ×1
exp ×1
git ×1
keras ×1
performance ×1
shortcut ×1
simplify ×1
string ×1
tensorflow ×1
windows ×1