【python学习小知识】求绝对值和numpy和tensor的相互转换

时间:2023-03-08 22:54:54
【python学习小知识】求绝对值和numpy和tensor的相互转换

一、python求绝对值的三种方法

  • 1.条件判断
  • 2.内置函数abs()
  • 3.内置模块 math.fabs

1、条件判段,判断大于0还是小于0,小于0则输出相反数即可

# 法1:使用条件判断求绝对值
def abs_value1():
# input返回str,需转换为浮点数的格式
a = float(input('1.请输入一个数字:'))
if a >= 0:
a = a
else:
a = -a
print('绝对值为:%f' % a)

2、abs()函数

# 法2:使用内置函数求绝对值
def abs_value2():
a = float(input('2.请输入一个数字:'))
a = abs(a)
print('绝对值为:%f' % a)

3、内置模块 math.fabs(),它在math模块中定义

# 法3:使用内置的math模块求绝对值 

import math
def abs_value3():
a = float(input('3.请输入一个数字:'))
a = math.fabs(a)
print('绝对值为:%f' % a)

abs() 与fabs()的区别

abs()是一个内置函数,而fabs()在math模块中定义的。
fabs()函数只适用于float和integer类型,而abs()也适用于复数。
abs()返回是float和int类型,math.fabs()返回是float类型

二、tensor和numpy的相互转换

1、numpy转换为tensor

import numpy as np
import torch # 定义x,y为2*1的数组
x = np.zeros([2,1])
y = np.ones([2,1])
x, y
# 输出:
(array([[0.],
[0.]]),
array([[1.],
[1.]]))

转换为tensor,用torch.from_numpy(x)

x, y = torch.from_numpy(x), torch.from_numpy(y)
x, y # 输出:
(tensor([[0.],
[0.]], dtype=torch.float64),
tensor([[1.],
[1.]], dtype=torch.float64))

2、tensor转换为numpy,接着上面的继续使用.numpy()即可

x, y =x.numpy(), y.numpy()
x, y # 输出:
(array([[0.],
[0.]]),
array([[1.],
[1.]]))

记录python学习小知识,共同进步。