【NumPy】 之常见运算四舍五入、取整、条件选取(np.around、np.floor、np.ceil、np.where)

____tz_zs

 

之前把 numpy 资料写在了同一篇博客里,发现非常难以查阅,于是按功能切分开来。

https://blog.csdn.net/tz_zs/article/details/73929778

https://blog.csdn.net/tz_zs/article/details/80773612

https://blog.csdn.net/tz_zs/article/details/80775256

 

(1) np.around 四舍五入

np.around 返回四舍五入后的值,可指定精度。

around(a, decimals=0, out=None)

a 输入数组

decimals 要舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置

·

# -*- coding: utf-8 -*-
"""
@author: tz_zs
"""
import numpy as np

n = np.array([-0.746, 4.6, 9.4, 7.447, 10.455, 11.555])

around1 = np.around(n)
print(around1)  # [ -1.   5.   9.   7.  10.  12.]

around2 = np.around(n, decimals=1)
print(around2)  # [ -0.7   4.6   9.4   7.4  10.5  11.6]

around3 = np.around(n, decimals=-1)
print(around3)  # [ -0.   0.  10.  10.  10.  10.]

·

 

(2) np.floor 向下取整

np.floor 返回不大于输入参数的最大整数。 即对于输入值 x ,将返回最大的整数 i ,使得 i <= x。 注意在Python中,向下取整总是从 0 舍入。

·

# -*- coding: utf-8 -*-
"""
@author: tz_zs
"""
import numpy as np

n = np.array([-1.7, -2.5, -0.2, 0.6, 1.2, 2.7, 11])

floor = np.floor(n)
print(floor)  # [ -2.  -3.  -1.   0.   1.   2.  11.]

·

 

(3) np.ceil 向上取整

np.ceil 函数返回输入值的上限,即对于输入 x ,返回最小的整数 i ,使得 i> = x。

# -*- coding: utf-8 -*-
"""
@author: tz_zs
"""
import numpy as np

n = np.array([-1.7, -2.5, -0.2, 0.6, 1.2, 2.7, 11])

ceil = np.ceil(n)
print(ceil)  # [ -1.  -2.  -0.   1.   2.   3.  11.]

·

 

(4) np.where 条件选取

numpy.where(condition[, x, y])

根据条件 condition 从 x 和 y 中选择元素,当 condition 为 True 时,选 x,否则选 y。

https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html

.

import numpy as np

data = np.random.random([2, 3])
print data
'''
[[ 0.93122679  0.82384876  0.28730977]
 [ 0.43006042  0.73168913  0.02775572]]
'''

result = np.where(data > 0.5, data, 0)
print result
'''
[[ 0.93122679  0.82384876  0.        ]
 [ 0.          0.73168913  0.        ]]
'''

.

 

  • 57
    点赞
  • 185
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: A. np.ceil(arr):将arr数组中的所有元素向上取整,即变成最接近且大于等于原值的整数。对于输入数组[[1.9,2.5],[1.6,7.3]],np.ceil(arr)的输出为[[2., 3.], [2., 8.]]。 B. np.floor(arr):将arr数组中的所有元素向下取整,即变成最接近且小于等于原值的整数。对于输入数组[[1.9,2.5],[1.6,7.3]],np.floor(arr)的输出为[[1., 2.], [1., 7.]]。 C. np.rint(arr):将arr数组中的所有元素四舍五入取整,即变成最接近原值的整数。对于输入数组[[1.9,2.5],[1.6,7.3]],np.rint(arr)的输出为[[2., 2.], [2., 7.]]。 D. np.isnan(arr):返回一个布尔数组,其中True表示对应位置上的元素是NaN(Not a Number),False表示不是NaN。对于输入数组[[1.9,2.5],[1.6,7.3]],np.isnan(arr)的输出为[[False, False], [False, False]],因为输入数组中没有NaN元素。 因此,答案是A. np.ceil(arr)、B. np.floor(arr)、C.np.rint(arr)、D.np.isnan(arr)。 ### 回答2: 对数组arr = [[1.9,2.5],[1.6,7.3]]进行操作: A. np.ceil(arr)将数组中的所有元素向上取整,即将1.9取整为2,2.5取整为3,1.6取整为2,7.3取整为8。最终的结果为[[2, 3], [2, 8]]。 B. np.floor(arr)将数组中的所有元素向下取整,即将1.9取整为1,2.5取整为2,1.6取整为1,7.3取整为7。最终的结果为[[1, 2], [1, 7]]。 C. np.rint(arr)将数组中的所有元素四舍五入取整,即将1.9取整为2,2.5取整为2,1.6取整为2,7.3取整为7。最终的结果为[[2, 2], [2, 7]]。 D. np.isnan(arr)用于判断数组中的元素是否为NaN(Not a Number),返回一个布尔型数组。对于给定的数组,其中所有的元素都不是NaN,所以返回的结果为False。最终的结果为[[False, False], [False, False]]。 ### 回答3: 对于数组arr = [[1.9, 2.5], [1.6, 7.3]],我们可以使用numpy库中的函数进行向上取整、向下取整四舍五入和判断是否为NaN的操作。 A. np.ceil(arr) 这个函数会将数组中的每个元素向上取整,返回一个新的数组。对于arr来说,np.ceil(arr) 的结果为 [[2.0, 3.0], [2.0, 8.0]]。 B. np.floor(arr) 这个函数会将数组中的每个元素向下取整,返回一个新的数组。对于arr来说,np.floor(arr) 的结果为 [[1.0, 2.0], [1.0, 7.0]]。 C. np.rint(arr) 这个函数会将数组中的每个元素四舍五入到最接近的整数,返回一个新的数组。对于arr来说,np.rint(arr) 的结果为 [[2.0, 2.0], [2.0, 7.0]]。 D. np.isnan(arr) 这个函数会判断数组中的每个元素是否为NaN(Not a Number),即判断是否为非数字。其中,不是NaN的元素返回False,是NaN的元素返回True。对于arr来说,np.isnan(arr) 的结果为 [[False, False], [False, False]],因为数组中的元素都是数字,不是NaN。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值