def test_numpy_argmax(self):
        # See GH#16830
        data = np.arange(1, 11)

        s = Series(data, index=data)
        result = np.argmax(s)
        expected = np.argmax(data)
        assert result == expected

        result = s.argmax()

        assert result == expected

        msg = "the 'out' parameter is not supported"
        with pytest.raises(ValueError, match=msg):
            np.argmax(s, out=data)
Пример #2
0
    def peak_frequency(self, min_frequency=0.0, max_frequency=None,
                       column=None, run=None, label=None):
        """Return frequency with peak magnitude.

        Parameters
        ----------
        min_frequency : float
            Minimum frequency to search for peak from
        max_frequency : float
            Maximum frequency to search for peak from
        column : str, optional
            Electrode to use for finding peak. If None then the mean of the
            magnitude across all electrodes is used.
        run : Index, optional
            Index for the run
        label : Index, optional
            Index for the label

        Returns
        -------
        freq : float
            Peak frequency

        Examples
        --------
        >>> spectrum = Spectra4D({'baseline': {'Trial 1':
        ...                      {'Cz': [1, 2, 3, 1, 2, 10, 3, 4, 1]}}})
        >>> spectrum.peak_frequency()
        5

        """
        min_frequency = max(0.0, min_frequency)
        if max_frequency is None:
            max_frequency = max(self.major_axis)

        indices = ((self.major_axis >= min_frequency) &
                   (self.major_axis <= max_frequency))
        if column is None and run is None and label is None:
            magnitudes = np.abs(self[:, :, indices, :]).values.mean(
                axis=(0, 1, 3))
            magnitudes = Series(magnitudes, index=self.major_axis[indices])
        else:
            magnitudes = np.abs(self[label, run, indices, column])
        # TODO: Combination when some of the indices are not parameters.

        peak_frequency = magnitudes.argmax()
        return peak_frequency
Пример #3
0
    def test_numpy_argmax_deprecated(self):
        # See GH#16830
        data = np.arange(1, 11)

        s = Series(data, index=data)
        with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
            # The deprecation of Series.argmax also causes a deprecation
            # warning when calling np.argmax. This behavior is temporary
            # until the implementation of Series.argmax is corrected.
            result = np.argmax(s)
        assert result == 10

        with tm.assert_produces_warning(FutureWarning):
            # argmax is aliased to idxmax
            result = s.argmax()

        assert result == 10

        with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
            msg = "the 'out' parameter is not supported"
            with pytest.raises(ValueError, match=msg):
                np.argmax(s, out=data)
Пример #4
0
def classify(freq,Yabs,filt,tolerance):
    '''
        取可疑极大值点左右两个极小值点,求出两个极小值点的均值作为这附近功率谱的基准。
    '''
    N=5
    Yabs = np.convolve(Yabs, np.ones((N,))/N, mode='same')
    y = Series(Yabs ,index = freq)
    if filt:
        yFilt= y[filt[0]:filt[1]]
    else:
        yFilt = y
    maximum = yFilt.max()
    mean = yFilt.mean()
    threshold = 4
    if compute_SNR(y, y) > threshold and maximum < 15:
        # Threshold
        maxF = y.argmax()
        #  print("Max freq at %f" % maxF)

        # Inspect half frequency of max frequency with a tolerance
        halfMaxF = maxF/2
        halfY = y[halfMaxF-tolerance:halfMaxF+tolerance]
        halfSNR = compute_SNR(halfY,y)

        doubleMaxF = maxF*2
        doubleY = y[doubleMaxF-2*tolerance:doubleMaxF+2*tolerance]
        doubleSNR = compute_SNR(doubleY,y)

        if halfSNR <= threshold:
            if doubleSNR > threshold/2:
                print('Stimuli at %f' % yFilt.argmax())
            else:
                print('SNR on double frequency too low')
            #  print('Max freq at %f' % yFilt.argmax())
        else:
            print('Stimuli at %f' % halfY.argmax())
    else:
        print('SNR too low')
    return y
Пример #5
0
    def test_numpy_argmax_deprecated(self):
        # See GH#16830
        data = np.arange(1, 11)

        s = Series(data, index=data)
        with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
            # The deprecation of Series.argmax also causes a deprecation
            # warning when calling np.argmax. This behavior is temporary
            # until the implementation of Series.argmax is corrected.
            result = np.argmax(s)
        assert result == 10

        with tm.assert_produces_warning(FutureWarning):
            # argmax is aliased to idxmax
            result = s.argmax()

        assert result == 10

        with tm.assert_produces_warning(FutureWarning,
                                        check_stacklevel=False):
            msg = "the 'out' parameter is not supported"
            with pytest.raises(ValueError, match=msg):
                np.argmax(s, out=data)
Пример #6
0
# longest and shortest times

np.set_printoptions(threshold=175)
print np.unique(in_df.PoliceDistrict)
in_df.PoliceDistrict.value_counts()  # Freq

policeDistricts_list = np.unique(in_df.PoliceDistrict)
dist_resp_times = SR(np.zeros(len(policeDistricts_list)))
for i in policeDistricts_list:
    mask = (in_df.PoliceDistrict == i) & (response_time1 > 0)
    dist_resp_times[i] = response_time1[mask].mean()
    print 'District ', i,
    print_response_time('Mean', dist_resp_times[i])

print 'Longest avg. resp time ', dist_resp_times.max(
), 'for District', dist_resp_times.argmax()
print 'Shortest avg. resp time ', min(
    dist_resp_times), 'for District', dist_resp_times.argmin()
print_response_time('Difference in avg.',
                    max(dist_resp_times) - min(dist_resp_times))

#------------------------------------------------------------------------------
# Event types that occur more often in a district

print np.unique(in_df.Type_)
in_df.Type_.value_counts()  ## 21 has the highest freq
in_df.TypeText[in_df.Type_ == '21']  ## Corresponds to 'COMPLAINT OTHER'
in_df.TypeText.value_counts()

tmp_df1 = in_df.groupby(['PoliceDistrict', 'Type_',
                         'TypeText']).size().reset_index(name='Times')