MATLAB代码的Python替代方案';最小值(Ar_1(Ar_1~=0))&x27;
我希望在python中以最小的复杂性获得与MATLAB中的MATLAB代码的Python替代方案';最小值(Ar_1(Ar_1~=0))&x27;,python,arrays,matlab,numpy,Python,Arrays,Matlab,Numpy,我希望在python中以最小的复杂性获得与MATLAB中的min(Ar(Ar~=0))相同的结果,其中Ar是一个2D numpy数组 对于那些不熟悉MATLAB的人来说,~=意味着=或不等于 python中是否有返回元素索引的函数: 1。其值满足条件(在本例中为!=0的元素) 2. 哪个可以直接用作另一个数组的列表索引输入?(As(Ar~=0)的结果被用作这样的输入Ar(Ar~=0) 这里,Ar~=0被用作列表索引输入,就像这样Ar(Ar~=0),然后求出数组的minAr(Ar~=0)。换句话说
min(Ar(Ar~=0))
相同的结果,其中Ar
是一个2D numpy数组
对于那些不熟悉MATLAB的人来说,~=
意味着=代码>或不等于
python中是否有返回元素索引的函数:
1。其值满足条件(在本例中为!=0的元素)
2.
哪个可以直接用作另一个数组的列表索引输入?(As(Ar~=0)
的结果被用作这样的输入Ar(Ar~=0)
这里,Ar~=0
被用作列表索引输入,就像这样Ar(Ar~=0)
,然后求出数组的minAr(Ar~=0)
。换句话说,数组的最小值被求出,不包括值为0的元素。numpython数组a的语法是:
A[A!=0].min()
您还可以设置数组元素:
B = A.copy()
B[A==0] = A[A!=0].min()
正如设置截断的示例一样,numpy数组的python语法是:
A[A!=0].min()
您还可以设置数组元素:
B = A.copy()
B[A==0] = A[A!=0].min()
就像一个设置截止点的例子一样是的,这很有效。真不敢相信它这么简单!谢谢伙计:D虽然,B[a==0]=a[!=0]。min()
似乎不起作用。不过我理解它背后的逻辑。你能解释一下这条线到底在做什么吗?两边数组的大小相同或相同是很重要的(就像在示例中一样)右边是一个scalarYes,这是有效的。真不敢相信它这么简单!谢谢mate:D,虽然,B[a==0]=a[!=0]。min()
似乎不起作用。不过我理解它背后的逻辑。你能解释一下这条线到底在做什么吗?两边的数组大小相同或相同很重要(如expample中所示)右侧是标量