[英]Numpy: Create new array from 1d integer array where each element in integer array represents the number of elements in the new array
[英]Create new array from integer elements of another array? MATLAB
我创建了一个数组tP
,其中包含整数和非整数元素的混合。 我想创建一个整数元素的新数组。
我想要的结果与返回的格式相同,例如:
tP2=find(tP>300);
即,包含整数值的元素编号列表,而不是整数本身的列表。
然后,我将从中选择所需的元素,如下所示:
tP3=tP(tP2);
为此,我目前拥有的是:
tP2=find(isinteger(int16(tP)));
但是,我没有得到元素编号列表,而只是返回了tP2=1
。
为什么isinteger
在这种情况下不起作用,如何获得所需的结果? 谢谢。
使用round
tp2 = find( tP == round(tP) );
正如Shai所说,与round
比较是检测整数的有效方法。
接下来,除非您需要其他匹配项列表,否则不需要find
。 只是比较会创建一个掩码数组,而掩码可用于下标。
tP3 = tP(tP == round(tP));
摆脱tP2
和find
调用应该节省时间和内存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.