Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB代码的Python替代方案';最小值(Ar_1(Ar_1~=0))&x27;_Python_Arrays_Matlab_Numpy - Fatal编程技术网

MATLAB代码的Python替代方案';最小值(Ar_1(Ar_1~=0))&x27;

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)。换句话说

我希望在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)
,然后求出数组的min
Ar(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中所示)右侧是标量