[Numpy-discussion] trim_zeros in more than one dimension?

Bruce Southey bsouthey at gmail.com
Thu Apr 22 17:23:51 EDT 2010


On 04/21/2010 02:45 PM, Robert Kern wrote:
> On Wed, Apr 21, 2010 at 10:34, Bruce Southey<bsouthey at gmail.com>  wrote:
>    
>> On 04/21/2010 08:36 AM, Robert Kern wrote:
>>      
>>> On Tue, Apr 20, 2010 at 18:45, Charles R Harris
>>> <charlesr.harris at gmail.com>    wrote:
>>>
>>>        
>>>> On Tue, Apr 20, 2010 at 7:03 AM, Andreas Hilboll<lists at hilboll.de>    wrote:
>>>>
>>>>          
>>>>> Hi there,
>>>>>
>>>>> is there an easy way to do something like trim_zeros() does, but for a
>>>>> n-dimensional array? I have a 2d array with only zeros in the first and
>>>>> last rows and columns, and would like to trim this array to only the
>>>>> non-zero part ...
>>>>>
>>>>>            
>>>> I think for your application it would be easier to use a subarray, something
>>>> like a[1:-1, 1:-1].
>>>>
>>>>          
>>> Yes, but I think he's asking for a function that will find the
>>> appropriate slices for him, justl like trim_zeros() does for 1D
>>> arrays.
>>>
>>>
>>>        
>> If the sum of axis to be removed equals zero then you can conditionally
>> remove that axis.
>>      
> No. Negative numbers can cancel out positive numbers.
>
>    
In such cases you can use the sum of the absolute value of the array or 
the sum of a suitability constructed boolean indicator for the selected 
axis. In the case of floating point dtypes, compare it to a value near 
zero rather than exactly zero.

Bruce



More information about the NumPy-Discussion mailing list