在这篇文章中,我们将带领您了解算法Pythonnumpy作用(numpy.diff、numpy.argwhere)的全貌,包括numpy计算的相关情况。同时,我们还将为您介绍有关AnacondaNum
在这篇文章中,我们将带领您了解算法Python numpy作用(numpy.diff、numpy.argwhere)的全貌,包括numpy计算的相关情况。同时,我们还将为您介绍有关Anaconda Numpy 错误“Importing the Numpy C Extension Failed”是否有另一种解决方案、cvxpy 和 numpy 之间的版本冲突:“针对 API 版本 0xe 编译的模块,但此版本的 numpy 是 0xd”、git diff --patience和git diff --histogram有什么区别?、Git 想向我展示什么?行之间的 Git diff 没有明显差异 Diff 包含 � 替换字符的知识,以帮助您更好地理解这个主题。
本文目录一览:- 算法Python numpy作用(numpy.diff、numpy.argwhere)(numpy计算)
- Anaconda Numpy 错误“Importing the Numpy C Extension Failed”是否有另一种解决方案
- cvxpy 和 numpy 之间的版本冲突:“针对 API 版本 0xe 编译的模块,但此版本的 numpy 是 0xd”
- git diff --patience和git diff --histogram有什么区别?
- Git 想向我展示什么?行之间的 Git diff 没有明显差异 Diff 包含 � 替换字符
算法Python numpy作用(numpy.diff、numpy.argwhere)(numpy计算)
调用
import numpy as np
函数介绍(numpy.diff)
函数:numpy.diff
参数:
arr : [array_like] Input array.
n : [int,optional] The number of times values are differenced.
axis : [int,optional] The axis along which the difference is taken,default is the last axis.
返回: [ndarray]The n-th discrete difference. The output is the same as a except along axis where the dimension is smaller by n.
作用
判断一串数据是否有连续性,例如1,2,3,4,5,6,7,8或者a,b,c,d,e,f,g,在或者
0x01,0x02,0x03,0x04,0x05,0x06,再或者A,B,C,D,E,F,G等等
实例
字符串
4001676200000000c40a060000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
转换ASCII
'@\x01gb\x00\x00\x00\x00\xc4\n\x06\x00\x00\x00\x00\x00\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?'
diff_2 = np.diff(list(payload),n=2)
print(diff_2)
结果:
[ 165 -107 -93 98 0 0 196 -382 182 -2 6 0 0 0
16 -15 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0]
总结:那些0既表示此数据有很多连续自增数
函数介绍(numpy.argwhere)
函数名:numpy.argwhere
参数:
arr :[数组]输入数组。
返回:[ndarray]非零元素的索引。索引按元素分组。
作用
返回数组中,非0的坐标,常用于获取数组中非0的下表,或者非0个数
实例
数组
[ 165 -107 -93 98 0 0 196 -382 182 -2 6 0 0 0
16 -15 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0]
print(np.argwhere(diff_2 != 0))
结果:
[[ 0]
[ 1]
[ 2]
[ 3]
[ 6]
[ 7]
[ 8]
[ 9]
[10]
[14]
[15]]
print(len(np.argwhere(diff_2 != 0)))
结果:
11
Anaconda Numpy 错误“Importing the Numpy C Extension Failed”是否有另一种解决方案
如何解决Anaconda Numpy 错误“Importing the Numpy C Extension Failed”是否有另一种解决方案?
希望有人能在这里提供帮助。我一直在绕圈子一段时间。我只是想设置一个 python 脚本,它将一些 json 数据从 REST API 加载到云数据库中。我在 Anaconda 上设置了一个虚拟环境(因为 GCP 库推荐这样做),安装了依赖项,现在我只是尝试导入库并向端点发送请求。 我使用 Conda(和 conda-forge)来设置环境并安装依赖项,所以希望一切都干净。我正在使用带有 Python 扩展的 VS 编辑器作为编辑器。 每当我尝试运行脚本时,我都会收到以下消息。我已经尝试了其他人在 Google/StackOverflow 上找到的所有解决方案,但没有一个有效。我通常使用 IDLE 或 Jupyter 进行脚本编写,没有任何问题,但我对 Anaconda、VS 或环境变量(似乎是相关的)没有太多经验。 在此先感谢您的帮助!
\Traceback (most recent call last):
File "C:\Conda\envs\gcp\lib\site-packages\numpy\core\__init__.py",line 22,in <module>
from . import multiarray
File "C:\Conda\envs\gcp\lib\site-packages\numpy\core\multiarray.py",line 12,in <module>
from . import overrides
File "C:\Conda\envs\gcp\lib\site-packages\numpy\core\overrides.py",line 7,in <module>
from numpy.core._multiarray_umath import (
ImportError: DLL load Failed while importing _multiarray_umath: The specified module Could not be found.
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "c:\API\citi-bike.py",line 4,in <module>
import numpy as np
File "C:\Conda\envs\gcp\lib\site-packages\numpy\__init__.py",line 150,in <module>
from . import core
File "C:\Conda\envs\gcp\lib\site-packages\numpy\core\__init__.py",line 48,in <module>
raise ImportError(msg)
ImportError:
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy C-extensions Failed. This error can happen for
many reasons,often due to issues with your setup or how NumPy was
installed.
We have compiled some common reasons and troubleshooting tips at:
https://numpy.org/devdocs/user/troubleshooting-importerror.html
Please note and check the following:
* The Python version is: python3.9 from "C:\Conda\envs\gcp\python.exe"
* The NumPy version is: "1.21.1"
and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.
Original error was: DLL load Failed while importing _multiarray_umath: The specified module Could not be found.
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
cvxpy 和 numpy 之间的版本冲突:“针对 API 版本 0xe 编译的模块,但此版本的 numpy 是 0xd”
如何解决cvxpy 和 numpy 之间的版本冲突:“针对 API 版本 0xe 编译的模块,但此版本的 numpy 是 0xd”?
我正在尝试升级一些软件包并为现有的 Python 程序整合我的 requirements.txt
,以便将其移至 docker 容器。
这个容器将基于 tensorflow docker 容器,这决定了我必须使用的一些包版本。我们在 windows 下工作,我们希望能够在我们的机器上本地运行该程序(至少在一段时间内)。所以我需要找到一个适用于 docker 和 Windows 10 的配置。
Tensorflow 2.4.1
需要 numpy~=1.19.2
。使用 numpy 1.20
时,pip
会抱怨 numpy 1.20
是一个不兼容的版本。
但是在使用 numpy~=1.19.2
时,导入 cvxpy
时出现以下错误。 pip
安装所有软件包都很好:
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
Traceback (most recent call last):
File "test.py",line 1,in <module>
import cvxpy
File "c:\Projekte\algo5\venv\lib\site-packages\cvxpy\__init__.py",line 18,in <module>
from cvxpy.atoms import *
File "c:\Projekte\algo5\venv\lib\site-packages\cvxpy\atoms\__init__.py",line 20,in <module>
from cvxpy.atoms.geo_mean import geo_mean
File "c:\Projekte\algo5\venv\lib\site-packages\cvxpy\atoms\geo_mean.py",in <module>
from cvxpy.utilities.power_tools import (fracify,decompose,approx_error,lower_bound,File "c:\Projekte\algo5\venv\lib\site-packages\cvxpy\utilities\power_tools.py",in <module>
from cvxpy.atoms.affine.reshape import reshape
File "c:\Projekte\algo5\venv\lib\site-packages\cvxpy\atoms\affine\reshape.py",in <module>
from cvxpy.atoms.affine.hstack import hstack
File "c:\Projekte\algo5\venv\lib\site-packages\cvxpy\atoms\affine\hstack.py",in <module>
from cvxpy.atoms.affine.affine_atom import AffAtom
File "c:\Projekte\algo5\venv\lib\site-packages\cvxpy\atoms\affine\affine_atom.py",line 22,in <module>
from cvxpy.cvxcore.python import canonInterface
File "c:\Projekte\algo5\venv\lib\site-packages\cvxpy\cvxcore\python\__init__.py",line 3,in <module>
import _cvxcore
ImportError: numpy.core.multiarray Failed to import
重现步骤:
1.)
在 Windows 10 下创建一个新的 Python 3.8 venv
并激活它
2.) 通过 requirements.txt
安装以下 pip install -r requirements.txt
:
cvxpy
numpy~=1.19.2 # tensorflow 2.4.1 requires this version
3.) 通过 test.py
python test.py
import cvxpy
if __name__ == ''__main__'':
pass
如果我想使用 tensorflow 2.3
,也会发生同样的事情。在这种情况下需要 numpy~=1.18
,错误完全相同。
搜索错误发现很少的命中,可悲的是没有帮助我。
我该怎么做才能解决这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
git diff --patience和git diff --histogram有什么区别?
这个较早的问题要求4种不同的Git差异策略之间存在差异,但是唯一要说明的差异是myers
和之间的差异patience
,其他地方对此也有很好的解释。
该histogram
策略如何运作?有什么区别呢patience
?在GIT-
DIFF手册页只能说,它“伸出耐心算法‘支持低发生共同的元素’。” 其他页面提到它更快,并且来自JGit,但没有解释
其算法或结果与哪里或如何不同patience
。
我在哪里可以找到的说明,histogram
相对于算法patience
的算法,与同级别的细节如布拉姆·科恩的原始的描述patience
算法?
(如果只是实现性能的问题,没有任何情况会产生不同的结果,为什么不将它作为新的后端实现patience
?)
答案1
小编典典此直方图策略已在git1.7.7(2011年9月)中引入,并带有以下描述(如OP所述)
“
git diff
”学习了一个“--histogram
”选项,可以使用从jgit窃取的另一种差异生成机器,这可能会提供更好的性能。
JGit包括src/org/eclipse/jgit/diff/HistogramDiff.java
和tst/org/eclipse/jgit/diff/HistogramDiffTest.java
那里的描述相当完整:
直方图差异
Bram Cohen的耐心差异算法的扩展形式。
此实现是通过使用Bram
Cohen的博客中概述的4条规则得出
的,然后进一步扩展为支持低发生率的常见元素。该算法的基本思想是为 序列A的每个元素创建出现的直方图
。然后依次考虑序列B的每个元素。如果元素也存在于序列A中,并且出现次数较少,则将这些位置视为最长公共子序列(LCS)的候选对象。
扫描完B后,将出现次数最少的LCS选择为分割点。在LCS周围划分区域,并将算法递归应用于LCS之前和之后的部分。通过始终选择发生次数最少的LCS位置,只要两个序列之间存在唯一的公共元素,该算法的行为就与Bram Cohen的耐心差异完全一样。
如果不存在唯一元素,则选择出现次数最少的元素。
与仅依靠标准MyersO(ND)
算法产生的差异相比,这提供了更具可读性的差异。为了防止该算法
O(N^2)
运行时间,直方图桶中唯一元素数量的上限由设置#setMaxChainLength(int)
。如果序列A的哈希元素散布到同一个哈希桶中的元素数量超过此数目,则算法会将区域传递给
#setFallbackAlgorithm(DiffAlgorithm)
。
如果未配置回退算法,则该区域将作为替换编辑发出。在扫描序列B的过程中,
#setMaxChainLength(int)
不会对LCS匹配位置考虑多次出现的A元素,即使这在两个序列之间是相同的。这限制了找到LCS时必须考虑的序列A中的位置数量,并有助于维持较短的运行时间范围。只要
#setMaxChainLength(int)
是一个小常数(例如64),该算法就会O(N* D)
及时运行,其中N
是输入长度的总和,D
是结果中的编辑次数EditList
。如果提供的
SequenceComparator
具有良好的哈希函数MyersDiff
,则即使其理论运行时间相同,该实现也通常会超出性能。此实现有一个内部限制,它不能处理包含超过268,435,456(2 ^ 28)个元素的序列
请注意,早在2006年(git1.3)中,这种算法已用于pack_checkgit-verify-pack -v
。它已在git 1.7.7中重新用于index-
pack
提交8c912ee实际上引入--histogram
到差异:
将JGit的HistogramDiff算法移植到C语言上。粗糙数(TODO)表明,它比其
--patience
表亲以及默认的Meyers算法要快。该实现已被重新设计为 使用结构和指针而不是位掩码,从而消除了JGit的
2^28
line limit。为了方便起见,我们还使用
xdiff
的默认哈希表实现(xdl_hash_bits()
和XDL_HASHLONG()
)。
提交8555123(git1.7.10,2012年4月)添加:
8c912ee(教学时间
--histogram
为diff
2011-07-12)声称直方图比较比Myers和耐心都要快。此后,我们已经合并了一个性能测试框架,因此添加一个测试,以比较在实际
log -p
工作负载中执行的各种差异任务。
这确实表明直方图差异略胜于Myers,而耐心则慢得多。
最后,提交07ab4de(git1.8.2,2013年3月)添加
config:引入diff.algorithm变量
与其他算法相比,某些用户或项目更喜欢不同的算法,例如,对myers或类似算法的耐心。
但是,每次使用diff时都指定适当的参数是不切实际的。而且,创建别名不能与其他基于diff的工具配合使用(git-show
例如)。因此,需要一种能够设置特定算法的配置变量。
目前,这四个值已被接受:
- ‘
myers
‘(与完全不设置config变量具有相同的效果),- ‘
minimal
‘- “
patience
”和- ‘
histogram
‘。
提交07924d4并发添加了--diff-algorithm
命令行选项。 正如OP[StuartP.Bentley]在评论中提到的那样:
您可以配置Git在默认情况下使用直方图 :
git config --global diff.algorithm histogram
更新:Git 2.12(2017年第一季度)将淘汰在某些极端情况下具有灾难性性能问题的“快速哈希”。
参见Jeff
King()提交1f7c926(2016年12月1日)。
(由Junio C
Hamano合并--在731490b号文件中,2016年12月19日)peff
gitster
xdiff
:掉落XDL_FAST_HASH
该
xdiff
代码哈希一个diff两侧的每一行,然后比较这些哈希查找重复。总体性能不仅取决于我们能够计算哈希的速度,而且取决于我们看到的哈希冲突数。的想法
XDL_FAST_HASH
是加快哈希计算。
但是,生成的哈希具有较差的碰撞行为。这意味着在某些情况下,它可以加快扩散速度(通过运行“git log -p
”git.git
可以提高速度~8%
),但在其他情况下,则可以减慢速度。一个病理病例减速了100倍。可能有一个更好的哈希函数可以同时覆盖这两个属性,但与此同时,我们最好还是使用原始哈希。在一般情况下,它的速度稍慢一些,但在令人惊讶的病理情况下却很少。
注意:“ git diff --histogram
”的内存使用情况模式不佳,已使用Git
2.19(2018年第三季度)对其进行了重新排列以减少峰值使用率。
请参阅Stefan
Beller()的commit
79cb2eb,commit
64c4e8b,commit
c671d4b,commit
2820985(2018年7月19日)。(由Junio
C
Hamano合并--在commit
57fbd8e中,2018年8月15日)stefanbeller
gitster
xdiff/xhistogram
:将索引分配移入find_lcs
这修复了递归多次时的内存问题,该问题可以复制为
seq 1 100000 >oneseq 1 4 100000 >twogit diff --no-index --histogram one two
在此补丁之前,
histogram_diff
将在调用之前递归地调用自身free_index
,这意味着在递归过程中分配了很多内存,然后才释放它们。通过将内存分配(及其免费调用)移入
find_lcs
,在递归之前内存将被释放,从而在递归的下一步中可以重用内存,而不必使用新的内存。这仅解决了内存压力,而不是运行时复杂性,这对于上面概述的极端情况也很糟糕。
Git 想向我展示什么?行之间的 Git diff 没有明显差异 Diff 包含 � 替换字符
首先在您的个人资料中检查您的 IDE 文件编码。
然后在 git 存储库中检查您如何设置:
设置 utf8 的命令示例:
git config gui.encoding utf-8
对于本地仓库,当然你也可以通过输入:
git config --global gui.encoding utf-8
所以基本上我所说的尝试看看你的所有部分是否匹配相同的编码。
,这不是 Git:这是一个编码问题。
请注意,黑色菱形问号符号是某些系统告诉您的:我在这里看到一些符号,但我不知道如何显示该符号。通读 Joel Spolsky 的文章文章,The Absolute Minimum Every Software Developer Absolutely,Positively Must Know About Unicode and Character Sets (No Excuses!)。具有讽刺意味的是,该页面有一点显示 s–
,它是一个 ASCII 字母 s(Unicode LATIN SMALL LETTER S,U+0073)后跟一个“破折号”(Unicode EN DASH, U+2013,十进制值 8211)。这是采用两个 ASCII 连字符 -
(Unicode HYHPEN-MINUS,U+002D)并将它们组合成一个破折号的结果,这是许多排版或标记系统的一个特性,但是 不应该应用于这个特定的序列。它应该呈现为 s--
,带有两个连字符。
在您的情况下,某些文件似乎已因尝试替换简单的 ASCII 字符而损坏 - 可能是反引号、Unicode GRAVE ACCENT、U+0060 和单引号、Unicode APOSTROPHE、U +0027——带有花哨的 Unicode LEFT SINGLE QUOTATION MARK U+2018 和 RIGHT SINGLE QUOTATION MARK U+2019 代码。但是,任何软件都可能错误地进行了这种转换并使用了其他一些编码。因此,您的显示软件正在尝试读取这种替代编码,就好像这是这些 Unicode 代码点的正确 UTF-8 编码,但实际上并非如此。
所有这些都会出错的原因有很多,其中很多都在 Spolsky 的文章中有所提及。作为一名程序员,您有责任找出哪里出了问题并解决了高深莫测的问题。
关于算法Python numpy作用(numpy.diff、numpy.argwhere)和numpy计算的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Anaconda Numpy 错误“Importing the Numpy C Extension Failed”是否有另一种解决方案、cvxpy 和 numpy 之间的版本冲突:“针对 API 版本 0xe 编译的模块,但此版本的 numpy 是 0xd”、git diff --patience和git diff --histogram有什么区别?、Git 想向我展示什么?行之间的 Git diff 没有明显差异 Diff 包含 � 替换字符的相关信息,请在本站寻找。
本文标签: