Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/numpy/lib/_ufunclike_impl.py: 41%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

27 statements  

1""" 

2Module of functions that are like ufuncs in acting on arrays and optionally 

3storing results in an output array. 

4 

5""" 

6__all__ = ['fix', 'isneginf', 'isposinf'] 

7 

8import numpy._core.numeric as nx 

9from numpy._core.overrides import array_function_dispatch 

10 

11 

12def _dispatcher(x, out=None): 

13 return (x, out) 

14 

15 

16@array_function_dispatch(_dispatcher, verify=False, module='numpy') 

17def fix(x, out=None): 

18 """ 

19 Round to nearest integer towards zero. 

20 

21 Round an array of floats element-wise to nearest integer towards zero. 

22 The rounded values have the same data-type as the input. 

23 

24 Parameters 

25 ---------- 

26 x : array_like 

27 An array to be rounded 

28 out : ndarray, optional 

29 A location into which the result is stored. If provided, it must have 

30 a shape that the input broadcasts to. If not provided or None, a 

31 freshly-allocated array is returned. 

32 

33 Returns 

34 ------- 

35 out : ndarray of floats 

36 An array with the same dimensions and data-type as the input. 

37 If second argument is not supplied then a new array is returned 

38 with the rounded values. 

39 

40 If a second argument is supplied the result is stored there. 

41 The return value ``out`` is then a reference to that array. 

42 

43 See Also 

44 -------- 

45 rint, trunc, floor, ceil 

46 around : Round to given number of decimals 

47 

48 Examples 

49 -------- 

50 >>> import numpy as np 

51 >>> np.fix(3.14) 

52 3.0 

53 >>> np.fix(3) 

54 3 

55 >>> np.fix([2.1, 2.9, -2.1, -2.9]) 

56 array([ 2., 2., -2., -2.]) 

57 

58 """ 

59 return nx.trunc(x, out=out) 

60 

61 

62@array_function_dispatch(_dispatcher, verify=False, module='numpy') 

63def isposinf(x, out=None): 

64 """ 

65 Test element-wise for positive infinity, return result as bool array. 

66 

67 Parameters 

68 ---------- 

69 x : array_like 

70 The input array. 

71 out : array_like, optional 

72 A location into which the result is stored. If provided, it must have a 

73 shape that the input broadcasts to. If not provided or None, a 

74 freshly-allocated boolean array is returned. 

75 

76 Returns 

77 ------- 

78 out : ndarray 

79 A boolean array with the same dimensions as the input. 

80 If second argument is not supplied then a boolean array is returned 

81 with values True where the corresponding element of the input is 

82 positive infinity and values False where the element of the input is 

83 not positive infinity. 

84 

85 If a second argument is supplied the result is stored there. If the 

86 type of that array is a numeric type the result is represented as zeros 

87 and ones, if the type is boolean then as False and True. 

88 The return value `out` is then a reference to that array. 

89 

90 See Also 

91 -------- 

92 isinf, isneginf, isfinite, isnan 

93 

94 Notes 

95 ----- 

96 NumPy uses the IEEE Standard for Binary Floating-Point for Arithmetic 

97 (IEEE 754). 

98 

99 Errors result if the second argument is also supplied when x is a scalar 

100 input, if first and second arguments have different shapes, or if the 

101 first argument has complex values 

102 

103 Examples 

104 -------- 

105 >>> import numpy as np 

106 >>> np.isposinf(np.inf) 

107 True 

108 >>> np.isposinf(-np.inf) 

109 False 

110 >>> np.isposinf([-np.inf, 0., np.inf]) 

111 array([False, False, True]) 

112 

113 >>> x = np.array([-np.inf, 0., np.inf]) 

114 >>> y = np.array([2, 2, 2]) 

115 >>> np.isposinf(x, y) 

116 array([0, 0, 1]) 

117 >>> y 

118 array([0, 0, 1]) 

119 

120 """ 

121 is_inf = nx.isinf(x) 

122 try: 

123 signbit = ~nx.signbit(x) 

124 except TypeError as e: 

125 dtype = nx.asanyarray(x).dtype 

126 raise TypeError(f'This operation is not supported for {dtype} values ' 

127 'because it would be ambiguous.') from e 

128 else: 

129 return nx.logical_and(is_inf, signbit, out) 

130 

131 

132@array_function_dispatch(_dispatcher, verify=False, module='numpy') 

133def isneginf(x, out=None): 

134 """ 

135 Test element-wise for negative infinity, return result as bool array. 

136 

137 Parameters 

138 ---------- 

139 x : array_like 

140 The input array. 

141 out : array_like, optional 

142 A location into which the result is stored. If provided, it must have a 

143 shape that the input broadcasts to. If not provided or None, a 

144 freshly-allocated boolean array is returned. 

145 

146 Returns 

147 ------- 

148 out : ndarray 

149 A boolean array with the same dimensions as the input. 

150 If second argument is not supplied then a numpy boolean array is 

151 returned with values True where the corresponding element of the 

152 input is negative infinity and values False where the element of 

153 the input is not negative infinity. 

154 

155 If a second argument is supplied the result is stored there. If the 

156 type of that array is a numeric type the result is represented as 

157 zeros and ones, if the type is boolean then as False and True. The 

158 return value `out` is then a reference to that array. 

159 

160 See Also 

161 -------- 

162 isinf, isposinf, isnan, isfinite 

163 

164 Notes 

165 ----- 

166 NumPy uses the IEEE Standard for Binary Floating-Point for Arithmetic 

167 (IEEE 754). 

168 

169 Errors result if the second argument is also supplied when x is a scalar 

170 input, if first and second arguments have different shapes, or if the 

171 first argument has complex values. 

172 

173 Examples 

174 -------- 

175 >>> import numpy as np 

176 >>> np.isneginf(-np.inf) 

177 True 

178 >>> np.isneginf(np.inf) 

179 False 

180 >>> np.isneginf([-np.inf, 0., np.inf]) 

181 array([ True, False, False]) 

182 

183 >>> x = np.array([-np.inf, 0., np.inf]) 

184 >>> y = np.array([2, 2, 2]) 

185 >>> np.isneginf(x, y) 

186 array([1, 0, 0]) 

187 >>> y 

188 array([1, 0, 0]) 

189 

190 """ 

191 is_inf = nx.isinf(x) 

192 try: 

193 signbit = nx.signbit(x) 

194 except TypeError as e: 

195 dtype = nx.asanyarray(x).dtype 

196 raise TypeError(f'This operation is not supported for {dtype} values ' 

197 'because it would be ambiguous.') from e 

198 else: 

199 return nx.logical_and(is_inf, signbit, out)