1.pytorch中变量类型转换

将numpy矩阵转换为Tensor张量:sub_ts = torch.from_numpy(sub_img)   #sub_img为numpy类型
将Tensor张量转化为numpy矩阵:sub_np1 = sub_ts.numpy()             #sub_ts为tensor张量
将numpy转换为Variable:sub_va = Variable(torch.from_numpy(sub_img))
将Variable张量转化为numpy:sub_np2 = sub_va.data.numpy()

(1)CPU或GPU张量之间的转换

一般只要在Tensor后加long(), int(), double(),float(),byte()等函数就能将Tensor进行类型转换;

例如:Torch.LongTensor--->Torch.FloatTensor, 直接使用data.float()即可

还可以使用type()函数,data为Tensor数据类型,data.type()为给出data的类型,如果使用data.type(torch.FloatTensor)则强制转换为torch.FloatTensor类型张量。

当你不知道要转换为什么类型时,但需要求a1,a2两个张量的乘积,可以使用a1.type_as(a2)将a1转换为a2同类型。

(2)CPU张量 ---->  GPU张量, 使用data.cuda()

(3)GPU张量 ----> CPU张量 使用data.cpu()

(4)Variable变量转换成普通的Tensor,其实可以理解Variable为一个Wrapper,里头的data就是Tensor. 如果Var是Variable变量,使用Var.data获得Tensor变量

(5)Tensor与Numpy Array之间的转换

Tensor---->Numpy  可以使用 data.numpy(),data为Tensor变量

Numpy ----> Tensor 可以使用torch.from_numpy(data),data为numpy变量

参考:https://blog.csdn.net/hustchenze/article/details/79154139 ,https://blog.csdn.net/pengge0433/article/details/79459679 .

2.碰到一个问题:

pbb为<type 'tuple'>: (234, 5),

pbb1=pbb[0]为<type 'tuple'>: (5,)成为一个数组,降维了,

pbb2=pbb[0:1]为<type 'tuple'>: (1, 5)还是一个二维矩阵

pbb3=np.delete(pbb2,[0],axis=0)为<type 'tuple'>: (0, 5)还是一个二维矩阵.

总结:要注意矩阵A 的A[0]和A[0:1]是不同的.

3.(1)类型type不变,数值value取整。(矩阵取整)
截取整数部分 np.trunc
向上取整 np.ceil
向下取整np.floor
四舍五入取整np.rint

(2)类型type改变

AA = np.array
AA.astype(np.int)

ps:这个好像不是太管用可能是我用错了,或版本问题??

用下面这个管用:

a=np.array(a, dtype=np.int16)

(3)分别用list,np.array 存储数据导致的不同点

# 为了看不同点,生成一个不变的数组# 如果用list,那么astype就有点麻烦In [245]: customersAge = [70 * np.random.rand(20)]In [250]: np.trunc(customersAge)
Out[250]:
array([[ 62.,  33.,  47.,  25.,  57.,  64.,   0.,  50.,  66.,  34.,  44.,45.,  14.,  40.,  48.,  45.,   5.,  50.,  29.,  35.]])In [251]: np.ceil(customersAge)
Out[251]:
array([[ 63.,  34.,  48.,  26.,  58.,  65.,   1.,  51.,  67.,  35.,  45.,46.,  15.,  41.,  49.,  46.,   6.,  51.,  30.,  36.]])In [252]: np.floor(customersAge)
Out[252]:
array([[ 62.,  33.,  47.,  25.,  57.,  64.,   0.,  50.,  66.,  34.,  44.,45.,  14.,  40.,  48.,  45.,   5.,  50.,  29.,  35.]])In [253]: np.rint(customersAge)
Out[253]:
array([[ 62.,  33.,  47.,  25.,  58.,  64.,   0.,  50.,  67.,  35.,  44.,45.,  14.,  41.,  49.,  45.,   6.,  51.,  29.,  36.]])# 但这样list不能直接用astype,要把格式换成array...呵呵呵In [254]: customersAge.astype(np.int)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-254-a648fd813d6e> in <module>()
----> 1 customersAge.astype(np.int)AttributeError: 'list' object has no attribute 'astype'In [256]: np.array(customersAge).astype(np.int)
Out[256]:
array([[62, 33, 47, 25, 57, 64,  0, 50, 66, 34, 44, 45, 14, 40, 48, 45,  5,50, 29, 35]])# 既然用numpy,最好就是np.array用到底In [264]: customersAge = np.array( 70 * np.random.rand(20))In [265]: customersAge.astype(np.int)
Out[265]:
array([57, 31, 59,  0, 27,  6, 25, 23, 54, 18, 33, 17, 67, 66, 24, 57, 45,64, 62, 47])

参考:https://www.jianshu.com/p/23a9224780e8

4.Python取numpy矩阵中的不连续的某几行某几列方法

原始矩阵和想要选取的目标如下:

C_A = c[[0,2]]    #先取出想要的行数据
C_A = C_A[:,[2,3]] #再取出要求的列数据
print(C_A) #输出最终结果

参考:https://blog.csdn.net/qq_34734303/article/details/80631831

python 近期用到的基础知识汇总(五)相关推荐

  1. python 近期用到的基础知识汇总(八)

    1.pytorch 的scatter()函数 scatter() 和 scatter_() 的作用是一样的,只不过 scatter() 不会直接修改原来的 Tensor,而 scatter_() 会. ...

  2. python 近期用到的基础知识汇总(六)

    1. Python列表索引批量删除. 一开始天真的一个一个用del函数删除如del list[id].然后发现删文件是按间隔来的(一个删除一个不动).后来想想就明白了,删除一个文件的同时list变短了 ...

  3. python 近期用到的基础知识汇总(四)

    1.python中 return 的用法:return 语句就是讲结果返回到调用的地方,并把程序的控制权一起返回 程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个retur ...

  4. python 近期用到的基础知识汇总(三)

    1.python __len__(self)详解 如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数.要让 len() 函数工作正常,类必须提供一个特殊方法__len__() ...

  5. python 近期用到的基础知识汇总(主要是skimage的相关矩阵变化函数)(二)

    1.skimage.segmentation.clear_border函数 clear_border(labels, buffer_size=0, bgval=0, in_place=False)主要 ...

  6. python 近期用到的基础知识汇总(主要是numpy和pytorch的相关矩阵变化函数)(一)

    ps两个库好多类似的函数傻傻分不清,总结下. 1.np.where where()的用法 首先强调一下,where()函数对于不同的输入,返回的只是不同的. 1当数组是一维数组时,返回的值是一维的索引 ...

  7. python 近期用到的基础知识汇总(七)

    1.os.path.split():按照路径将文件名和路径分割开. 例如 o='/media/HDD/nnUNet_raw/nnUNet_raw_data/Task009_Spleen/inferTs ...

  8. python基础知识资料-Python基础知识汇总

    原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...

  9. python基础知识资料-学习Python列表的基础知识汇总

    千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...

最新文章

  1. 中科院罗平演讲全文:自动撰写金融文档如何实现,用 AI 解
  2. iPhone 的 Push(推送通知)功能原理浅析
  3. 谈谈阿里所谓的——要性
  4. java多线程synchronized底层实现
  5. 性能测试之JMeter测试结果写入Excel
  6. python为运行为何出现乱码_python中文的显示乱码怎么办
  7. 5.8Gwifi串口服务器、485转wifi多功能串口转WIFI 、232转wifi、Modbus转RTU、工业自动化系统
  8. java实训说明说需求分析_java实训总结收获
  9. ai 自动外呼 微信加好友_制作一个可爱的Pwnagotchi AI好友来自动审核Wi-Fi网络
  10. STM32以DMA方式实现printf函数
  11. 太阳的后裔--OST.3 This love这份爱
  12. all boot options are tried的问题解决
  13. Windows Sever 2008 磁盘管理--磁盘分区
  14. mysql分页查询出租房屋信息_分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)...
  15. Underscore使用方法
  16. 【Python爬虫系列教程 41-100】猫眼电影字体加密破解
  17. Scala详细文本教学04
  18. 关于卷积神经网络,了解一下
  19. 中断函数实现按键控制LED灯亮灭
  20. python做网络测试工具一

热门文章

  1. Exchange 2007的自动发现
  2. UNIX不带缓存的IO函数
  3. C#反射——模仿BeanUtil属性复制
  4. Linear Algebra - Determinant(几何意义)
  5. 孔维滢201771010110《面向对象程序设计(java)》第一周学习总结
  6. Struts2执行流程
  7. 函数可重入问题reentrant functions
  8. [摘记]数值方法12——常微分方程组的积分
  9. react加水印_给网页增加水印的方法,react
  10. graphics | 基础绘图系统(一)——主函数plot及其参数