numpy可以同时处理两种数据:list和numpy.ndarray。

而torch只能处理张量(Tensor)数据。


1.替换 np.asarray()

import torch

data=[[1,2],[3,4]]

data = torch.Tensor(data)

# data = np.asarray(data)

print(data.shape)

2.替换 nn.prod()

#使用torch.prod()替换nn.prod(),其中torch.prod()里面的参数必须得是tensor.

import torch

data=[1,2]

data = torch.Tensor(data)

print(data.shape)

c = torch.prod(data)

c


tensor(2.)

Python torch.prod实例讲解 - 码农教程

3.替换 np.max()

#使用torch.max()替换np.max(),其中torch.max()里面的参数必须得是tensor.

import torch

data=[1,2,3,9,4]

data = torch.Tensor(data)

a = torch.max(data)

a


tensor(9.)

4.torch.Size转换为np.arrary

import torch

# data = np.asarray(data)

data=[[1,2],[3,4]]

data = torch.Tensor(data)

print(data.shape)

print(np.asarray(data.shape))

c = torch.prod(torch.Tensor(np.asarray(data.shape)))

c


torch.Size([2, 2])

[2 2]

tensor(4.)

5.numpy与torch的ravel,它俩用法一样,注意tensor.ravel()后的数据还是Tensor

import torch

# data = np.asarray(data)

data=[[1,2],[3,4]]

data = torch.Tensor(data)

data = data.ravel()

print("ravel:",data)


ravel: tensor([1., 2., 3., 4.])

6.numpy与torch的ndim,它俩用法一样

import torch

data=[[1,2],[3,4]]

data_numpy = np.asarray(data).ravel()

data = torch.Tensor(data)

data = data.ravel()

print("ravel:",data)

print(data.shape)

print("tensor_ndim:",data.ndim)

print("data_numpy_ndim:",data_numpy.ndim)


ravel: tensor([1., 2., 3., 4.])

torch.Size([4])

tensor_ndim: 1

data_numpy_ndim: 1

 7.numpy与torch.tensor的data.T效果一样

import torch

data=[[1,2],[3,4]]

data_numpy = np.asarray(data)

data = torch.Tensor(data)

# data = data.ravel()

data_trans_tensor=data.T

print("data:",data)

print("data_trans:",data_trans_tensor)

data_trans_numpy=data_numpy.T

print("data_numpy:",data_numpy)

print("data_trans_numpy:",data_trans_numpy)


data: tensor([[1., 2.], [3., 4.]])

data_trans: tensor([[1., 3.], [2., 4.]])

data_numpy: [[1 2] [3 4]]

data_trans_numpy: [[1 3] [2 4]]

8.np.arange()与torch.arange()用法一样

timesteps=5

a = np.arange(timesteps)

b = torch.arange(timesteps)

print("a:",a)

print("b:",b)


a: [0 1 2 3 4]

b: tensor([0, 1, 2, 3, 4])

Python torch.arange实例讲解 - 码农教程

9.np.ceil()与torch.ceil()用法一样,但torch.ceil()的输入必须是tensor.

a=[0.1,1.1,2.1,3.1]

b=np.ceil(a)

c=torch.ceil(torch.Tensor(a))

print("b:",b)

print("c:",c)


b: [1. 2. 3. 4.]

c: tensor([1., 2., 3., 4.])

10.torch.sort()替换np.sort(),torch.sort()还会返回对应原序列的索引

import numpy as np

import torch

a=[5,1.1,2.1,3.1]

b=np.sort(a)

value,indices=torch.sort(torch.Tensor(a))

print("b:",b)

print("c:",value,indices)


b: [1.1 2.1 3.1 5. ]

c: tensor([1.1000, 2.1000, 3.1000, 5.0000])  tensor([1, 2, 3, 0])

np.sort()函数的作用_wx5ba0c87f1984b的技术博客_51CTO博客

torch.sort()_James_Bobo的博客-CSDN博客_torch.sort()

11.torch.abs()替换np.abs()

data = [-1 , -2 , 1 , 2]

tensor = torch.FloatTensor(data)

print(

"abs in numpy:\n",np.abs(data),

"\nabs in torch:\n",torch.abs(tensor)

)


abs in numpy: [1 2 1 2] abs in torch: tensor([1., 2., 1., 2.])

12.torch.ones_like()替换np.ones_like(),但torch.ones_like参数必须是Tensor

import torch

import numpy as np

a=[[1,2],[3,4]]

input = torch.empty(2, 3)

print(np.ones_like(a))

print(torch.ones_like(input))


[[1 1] [1 1]]

tensor([[1., 1., 1.], [1., 1., 1.]])

13. torch.split替换np.split//未做比较solid的实验,因为np.split可以接受tensor,而且np.split和torch.split的用法不太一样,但能达到相同的效果,未深入研究

import torch

import numpy as np

a=[[1,2],[3,4]]

input = torch.tensor(a)

input_1 = torch.tensor(input)

print(input)

print(input_1)

a = np.split(input,1)

print(a)

b = torch.split(input,1)

print(b)


tensor([[1, 2], [3, 4]])

tensor([[1, 2], [3, 4]])

[tensor([[1, 2], [3, 4]])]

(tensor([[1, 2]]), tensor([[3, 4]]))

np.split 用法详解_Wanderer001的博客-CSDN博客_np.split函数

numpy的ones_like函数_God_s_apple的博客-CSDN博客_numpy ones_like

pytorch之torch.ones_like_刘嘉晨Amber的博客-CSDN博客

14.torch.empty_like()替换np.empty_like()//torch.empty_like()创建一个使用未初始化值填满的tensor

import torch

import numpy as np

a=[[1,2],[3,4]]

input = torch.tensor(a)

print(np.empty_like(a))

print(torch.empty_like(input))


[[1 2] [3 4]]

tensor([[0, 2], [3, 4]])

Python numpy.empty_like用法及代码示例 - 纯净天空

pytorch每日一学22(torch.empty()、torch.empty_like()、torch.empty_strided())创建未初始化数据的tensor_Fluid_ray的博客-CSDN博客_torch.empty

15.tensor.sum()替换np.sum()

import torch

import numpy as np

a=[[1,2],[3,4]]

input = torch.tensor(a)

d = np.array(input)

d1=d.sum(axis=0)

print(d1)

e = torch.tensor(d)

# print(e)

d2=e.sum(axis=0)

print(d2)


[4 6]

tensor([4, 6])

16.np.transpose(可处理高维)与torch.transpose不一样,torch.transpose只能处理2D情况,torch.permute可以处理高维情况

待补

python transpose与permute函数详解_ice123muxin的博客-CSDN博客_transpose和permute

np.transpose_cool whidpers的博客-CSDN博客_np transpose

17. torch.squeeze替换np.squeeze

写到这里突然发现,大部分np函数可以处理tensor,处理完后一般结果是np,再转换为tensor就好了

18. tensor.T与np.arrary.T的效果一样

19.A@B//矩阵乘法

import torch

import numpy as np

a=[[1,2],[3,4]]

input = torch.tensor(a)

d = np.array(input)

print(d)

e = torch.tensor(d)

print(e)

f = torch.tensor(np.squeeze(e))

print(type(f))

g=f.T

print(g)

k = e @ g

print(k)

print(k.type())


[[1 2] [3 4]]

tensor([[1, 2], [3, 4]])

<class 'torch.Tensor'> tensor([[1, 3], [2, 4]])

tensor([[ 5, 11], [11, 25]]) torch.LongTensor

/tmp/ipykernel_7717/3140886201.py:

11: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). f = torch.tensor(np.squeeze(e))

Python中@符号是什么意思 - 知乎

pytorch替换numpy中的一些组件 //转载请注明来源相关推荐

  1. [原创,转载请注明来源]android中sqlite数据库的中文数据的插入(insert)和查询(select)

    写这个东西写的我万分痛苦,因为这么个小问题整整折磨了我两天多的时间, 大把的青春啊,就这么浪费了, 这些或许对其他人有用,我再花半小时写出来,或许你就可以避免跟我一样,少走两天的弯路. 首先说查询吧: ...

  2. xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)

    开发环境: 硬件环境:Windows10+JDK 1.8: 软件环境:Java+Eclipse+Mybatis+maven3.6+tomcat8.0+Postgresql 10.6: 用到的jar包: ...

  3. 片上总线Wishbone 学习—— 转载请注明出处:http://blog.csdn.net/ce123

    片上总线Wishbone 学习(零)前言 声明:版权所有,欢迎转载! 转载请注明出处:http://blog.csdn.net/ce123 为了更加升入的理解片上系统,比如S3C2440等,今天开始学 ...

  4. python 等高线地图图片转 tin_由等高线生成TIN并由TIN生成坡度图【解决中文环境翻译差别的问题】(转载请注明出自博客园)...

    由等高线等生成TIN并生成坡度图的代码.在softline代码段对错误信息作了处理,不再使用"软线","软性线","柔性线","软 ...

  5. cordova 调用蓝牙_ionic蓝牙插件(cordova-plugin-ble-central)(个人翻译转载请注明)

    支持:iOS和Android4.3+ 安装:Cordova PhoneGap API: scan 扫描: 蓝牙扫描的方法,第二个参数10指的扫描时间,单位是秒,device是扫描的设备 ble.sca ...

  6. 手写多位数字识别器实现 (转载请注明出处!)

    1.主要功能 ①界面化的输入方式,进行实时数字识别 ②可以识别多位的数字,例如23,234 ③CNN进行数字识别 2.运行环境 Windows10.python3.7+.tensorflow2.x 3 ...

  7. 转载请注明:Windows 系统必备好用软件工具合集跟推荐 | 老D博客

    Windows 系统必备好用软件&工具合集跟推荐 97 63,371 A+ 所属分类:工具软件 一.浏览器 二.下载软件 三.播放软件 五.电子邮件客户端 六.图片/照片 浏览查看工具 七.文 ...

  8. 淘宝网的实习生笔试题以及经历--2011 4 1(转载请注明出处,即原创网址)

      昨天晚上7:00在西北工业大学,参加了淘宝网的实习生笔试(技术类),我应聘的是软件研发类.这一方面的人很多. 愚人节这一天,而且又下起了雨,路上车慢的很,感觉挺不顺利的,心情有点糟.到达笔试现场后 ...

  9. 引用请注明出处和转载请注明出处?我的看法

    很多文章和网站 都有这么一条: 引用请注明出处和转载请注明出处,有的无非多了个什么 保留法律权力 之类的 其实想想看,国外XX 小站 "拿去用了" 怎么办,起诉? BT下载&quo ...

最新文章

  1. Can't add more than 2 views to a ViewSwitcher
  2. 【Django】@login_required用法简介
  3. 软件工程第八次作业-2017282110249
  4. .NET Conf 2021 正在进行中,带你看一看微软带来了什么内容
  5. kubernetes实践之运行aspnetcore webapi微服务
  6. java转python推荐算法_java和python实现一个加权SlopeOne推荐算法
  7. python关键字和保留字_或带有Python示例的关键字
  8. Visual Studio项目版本转换器(c#项目版本转换器 v1.0)
  9. linux mint 安装内核,如何在Ubuntu, Linux Mint中安装Linux Kernel 4.18
  10. 1024 科学计数法 (20 分) C语言
  11. CVPR2021:单目标跟踪
  12. STM32系统定时器闪烁LED灯
  13. MOV指令是数据传送指令
  14. 微信WeUI扩展组件
  15. node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
  16. 读《时间管理:如何充分利用你的24小时》笔记
  17. Java---点名---最简
  18. PL2303 Windows8.1驱动
  19. vue文本框中禁止输入空格和使用enter键
  20. buck控制led恒流控制,双环数字平均电流控制仿真

热门文章

  1. 面向对象的五大基本原则(SOLID)
  2. 都是博士生的西湖大学第三期新招195位学生
  3. 真分数转埃及分数的和 (贪心)
  4. Qt编写安防楼宇对讲管理平台源码
  5. mdf ldf 导入 mysql_mdf和ldf导入数据库
  6. 常微分方程 $5 微分方程稳定性
  7. vPython窗口-原文完整翻译
  8. allegro 3D模型怎么找? PCB的DFA如何设计?如何加载PCB的3D模型?如何避免器件之间的干涉?PCB的3D设计 DFA设计的概念
  9. 手动搭建webpack5 + ts + vue3项目
  10. 数据分析学习的侧重点是什么?