Cupy与Numpy的数据类型互转

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cupy与Numpy的数据类型互转相关的知识,希望对你有一定的参考价值。

参考技术A

用cupy和numpy直接创建的数组/矩阵,类型是不一样的!无法相互之间进行运算。

用type查看二者的数据类型:

其实,如果只需要进行大量数组/矩阵间计算,然后将结果存储到某个" 容器 "之中,以cupy目前实现的函数功能来看,只用cupy来完成肯定是够的,完全可以一点没有numpy的影子。

但是,很多的" 第三方包是不认识cupy的数据类型 "的!本人就发现" matplotlib "就不识别cupy的数据类型!因此,如果除" 纯计算 "外还有别的需求,需要将cupy数据先转为numpy数据(numpy是转不了cupy的!)

cupy转numpy的函数: cupy.asnumpy()

结果:

有了这么简单的数据互转函数,只要计算量大,可以用cupy完全替换numpy!
直到需要使用其他第三方包的时候,再把cupy数据类型转回到numpy即可。

cupy或numpy中"数组"与"矩阵"的区别

参考技术A

cupy和numpy在矩阵和数组的使用上没有区别,在认识/创建层面有一些区别。

在numpy和cupy中," 数组 "和" 矩阵 "数据类型的区别如下:

(1)numpy中各种函数创建的" 数据类型 "的例子:

(2)numpy中把原始的" 数组转成矩阵 "的唯一方式:

(3)当原始" 数组高于二维时 ",无法转为矩阵:

(4)" 二维数组 "可直接进行各种线性代数的矩阵操作(无需先转为矩阵):

(5)" 三维及以上数组 ",进行线性代数矩阵运算,结果和低维矩阵一样!

以上是关于Cupy与Numpy的数据类型互转的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:参数“x”的类型不正确(预期为cupy.core.core.ndarray,得到了numpy.ndarray)

numpy_array与PIL.Image之间的互转

把Numpy加速700倍?用 CuPy 吧!

与 numpy 相比,cupy 代码不够快

iOS NSData与其他类型互转

Java编程常用数据转换:String与int互转