python判断浮点数是否为整数_Numpy:检查浮点数组是否包含整数

我需要这个问题的答案,原因稍有不同:检查何时可以在不丢失数据的情况下将整个浮点数数组转换为整数。在

Hunse的回答几乎对我有效,只是我显然不能使用就地技巧,因为我需要能够撤消操作:if np.all(np.mod(x, 1) == 0):

x = x.astype(int)

从那里,我想到了以下选项,在许多情况下,可能更快:

^{pr2}$

原因是模运算比减法慢。不过,现在我们先把整数转换成整数-相对而言,我不知道这个操作有多快。但是如果大多数数组都是整数(在我的例子中是这样),那么后一个版本几乎肯定更快。在

另一个好处是,您可以用^{}之类的东西来替换减法,以便在某个公差范围内进行检查(当然,在这里您应该小心,因为截断不是正确的舍入!)。在x_int = x.astype(int)

if np.all(np.isclose(x, x_int, 0.0001)):

x = x_int

编辑:速度较慢,但可能值得,这取决于您的用例,它还可以单独转换整数(如果存在的话)。在x_int = x.astype(int)

safe_conversion = (x - x_int) == 0

# if we can convert the whole array to integers, do that

if np.all(safe_conversion):

x = x_int.tolist()

else:

x = x.tolist()

# if there are _some_ integers, convert them

if np.any(safe_conversion):

for i in range(len(x)):

if safe_conversion[i]:

x[i] = int(x[i])

举个例子说明这一点:这对我来说是可行的,因为我有稀疏的数据(通常是零),然后将其转换为JSON,然后在服务器上重用。对于float,ujson将其转换为[ ...,0.0,0.0,0.0,... ],对于结果为[...,0,0,0,...]的整数,最多可节省字符串中一半的字符数。这减少了服务器(较短的字符串)和客户端(较短的字符串,大概更快的JSON解析)的开销。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用numpy库中的astype()函数将浮点数矩阵转换为整数型矩阵,代码示例如下:arr=np.array([[1.1,2.2,3.3],[4.4,5.5,6.6],[7.7,8.8,9.9]])arr.astype(int) ### 回答2: 要将浮点数矩阵转换为整数型矩阵,我们可以使用Python中的内置函数和库来完成这个任务。首先,需要导入NumPy库以便使用其中的转换函数。 首先,需要将浮点数矩阵存储在一个NumPy数组中。如果还没有安装NumPy库,可以使用以下命令进行安装:`pip install numpy`。 然后,可以使用`numpy.round()`函数来将浮点数矩阵进行四舍五入操作。这个函数将返回一个新的数组,其中的每个元素是四舍五入后的整数值。 接下来,可以使用`numpy.astype()`函数将四舍五入后的数组转换为整数型矩阵。该函数可以指定所需的数据类型,使用`np.int32`或`np.int64`来转换为32位或64位整数。 下面是一个示例代码,说明如何使用Python浮点数矩阵转换为整数型矩阵: ```python import numpy as np # 定义浮点数矩阵 float_matrix = np.array([[1.2, 2.5, 3.7], [4.9, 5.1, 6.3]]) # 将浮点数矩阵四舍五入 rounded_matrix = np.round(float_matrix) # 将四舍五入后的矩阵转换为整数型矩阵 int_matrix = rounded_matrix.astype(np.int32) # 输出结果 print(int_matrix) ``` 这将输出以下结果: ``` [[1 2 4] [5 5 6]] ``` 这样,我们就成功地将浮点数矩阵转换为整数型矩阵。可以根据实际需求来选择所需的数据类型和四舍五入规则。 ### 回答3: 要将浮点数矩阵转换为整数型矩阵,可以使用Python中的numpy库来实现。首先,需要安装numpy库,可以通过在终端中输入命令"pip install numpy"来进行安装。 安装好numpy库之后,可以使用以下代码来实现浮点数矩阵到整数型矩阵的转换: ``` python import numpy as np # 定义一个浮点数矩阵 float_matrix = np.array([[1.2, 2.3, 3.4], [4.5, 5.6, 6.7]]) # 将浮点数矩阵转换为整数型矩阵 int_matrix = float_matrix.astype(int) print("整数型矩阵:") print(int_matrix) ``` 在以上代码中,首先通过`np.array`函数定义一个浮点数矩阵`float_matrix`。然后,通过`astype`函数将浮点数矩阵转换为整数型矩阵,并将结果赋值给`int_matrix`。最后,使用`print`函数将整数型矩阵打印出来。 运行以上代码,将输出转换后的整数型矩阵: ``` 整数型矩阵: [[1 2 3] [4 5 6]] ``` 可以看到,浮点数矩阵中的每个元素都被转换为了相应的整数值。这样就成功将浮点数矩阵转换为了整数型矩阵。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值