Gluon学习03-基础数据类型Ndarray
Gluon学习03-基础数据类型Ndarray
目录,方便快速定位:
本机环境介绍:
系统:Linuxmint
Python版本:Python3
1.API介绍
MxNet版本:1.2.0
API地址:https://mxnet.incubator.apache.org/api/python/ndarray/ndarray.html
Ndarray在CPU/GPU上提供必要的张量操作,是一个多维的,固定大小的,同类型的矩阵.mxnet.ndarray与numpy.ndarray非常相似.
The NDArray class:
1.属性
shape/size/ndim/context/dtype
- import mxnet as mx
- from mxnet import nd
- import numpy as np
- #数据的形状
- >>> x = mx.nd.array([1, 2, 3, 4])
- >>> x.shape
- (4L,)
- >>> y = mx.nd.zeros((2, 3, 4))
- >>> y.shape
- (2L, 3L, 4L)
- #数据的多少
- >>> import numpy as np
- >>> x = mx.nd.zeros((3, 5, 2))
- >>> x.size
- 30
- >>> np.prod(x.shape)
- 30
- #数据的阶/秩
- >>> x = mx.nd.array([1, 2, 3, 4])
- >>> x.ndim
- 1
- >>> x = mx.nd.array([[1, 2], [3, 4]])
- >>> x.ndim
- 2
- #数据所在的设备
- >>> x = mx.nd.array([1, 2, 3, 4])
- >>> x.context
- cpu(0)
- >>> type(x.context)
- >>> y = mx.nd.zeros((2,3), mx.gpu(0))
- >>> y.context
- gpu(0)
- #数据的类型
- >>> x = mx.nd.zeros((2,3))
- >>> x.dtype
- >>> y = mx.nd.zeros((2,3), dtype='int32')
- >>> y.dtype
2.转换
- #转为标量,形状必须是(1,)
- >>> x = mx.nd.ones((1,), dtype='int32')
- >>> x.asscalar()
- 1
- >>> type(x.asscalar())
- #复制
- >>> x = mx.nd.ones((2,3))
- >>> y = x.copy()
- >>> y.asnumpy()
- array([[ 1., 1., 1.],
- [ 1., 1., 1.]], dtype=float32)
3.创建
- #通过自身API创建
- >>> a=nd.arange((10))
- >>> a
- [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
- <NDArray 10 @cpu(0)>
- >>> b=nd.zeros((2,3))
- >>> b
- [[0. 0. 0.]
- [0. 0. 0.]]
- <NDArray 2x3 @cpu(0)>
- >>> c=nd.ones((2,3,1))
- >>> c
- [[[1.]
- [1.]
- [1.]]
- [[1.]
- [1.]
- [1.]]]
- <NDArray 2x3x1 @cpu(0)>
- #通过list创建
- >>> d=[6,5,4,3,2,1]
- >>> e=nd.array(d)
- >>> e
- [6. 5. 4. 3. 2. 1.]
- <NDArray 6 @cpu(0)>
4.形状
- #转置
- >>> x = mx.nd.arange(0,6).reshape((2,3))
- >>> x.asnumpy()
- array([[ 0., 1., 2.],
- [ 3., 4., 5.]], dtype=float32)
- >>> x.T.asnumpy()
- array([[ 0., 3.],
- [ 1., 4.],
- [ 2., 5.]], dtype=float32)
- #改变形状
- >>> x = mx.nd.arange(0,6).reshape(2,3)
- >>> x
- [[0. 1. 2.]
- [3. 4. 5.]]
- <NDArray 2x3 @cpu(0)>
- >>> y = x.reshape(3,2)
- >>> y
- [[0. 1.]
- [2. 3.]
- [4. 5.]]
- <NDArray 3x2 @cpu(0)>
- #列多少不管,就明确是n行,列= (x.size/n)上整
- >>> y = x.reshape(2,-1)
- >>> y
- [[0. 1. 2.]
- [3. 4. 5.]]
- <NDArray 2x3 @cpu(0)>
- #只要一行
- >>> y = x.reshape(-3)
- >>> y
- [0. 1. 2. 3. 4. 5.]
- <NDArray 6 @cpu(0)>
- >>>
5.元素扩展
- #拼接,输入数组的唯独应该相同
- x = [[1,1],[2,2]]
- y = [[3,3],[4,4],[5,5]]
- z = [[6,6], [7,7],[8,8]]
- concat(x,y,z,dim=0) = [[ 1., 1.],
- [ 2., 2.],
- [ 3., 3.],
- [ 4., 4.],
- [ 5., 5.],
- [ 6., 6.],
- [ 7., 7.],
- [ 8., 8.]]
参考:
NDArray API
每日一学,争取进步03
Gluon学习03-基础数据类型Ndarray的更多相关文章
- Python基础学习Day7 基础数据类型的扩展 集合 深浅copy
一.基础数据类型的扩展 1.1GBK ---> UTF - 8 # str --->bytes s1 = '太白' # 字符串是unicode编码 b1 = s1.encode('gbk' ...
- Lua学习----Lua基础数据类型
前言 Lua有6中数据类型,分别是nil(空).boolean(布尔).number(数字).string(字符).table(表).function(函数) 在Lua中可以使用type函数来返回一个 ...
- python学习03-数据类型
一.基本数据类型--数字 布尔型 bool型只有两个值:True和False 之所以将bool值归类为数字,是因为我们也习惯用1表示True,0表示False. 以下是布尔值是False的各种情况: ...
- Scala - 快速学习03 - 基础语法
1- 变量 变量 mutable variable 在程序运行过程中其值可能发生改变的量 关键词var定义变量,定义时直接进行求值 常量 immutable variable 在程序运行过程中其值不会 ...
- python 的基础 学习 第六天 基础数据类型的操作方法 字典
1,字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且ke ...
- Python学习1 基础数据类型
一.字符串 1.去除首尾字符 str_test = 'Hello World!' str_test.split()#将字符串分割为列表str_test. ...
- 【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张
自从苹果宣布swift之后,我一直想了解,他一直没有能够把它的正式学习,从今天开始,我会用我的博客来驱动swift得知,据我们了解还快. 1.定义变量和常量 var 定义变量,let定义常量. 比如 ...
- python学习日记(基础数据类型及其方法02)
python的变量 python中的变量不需要声明,变量载使用前必须被赋值,变量被赋值以后才会被创建. 在python中变量就是变量,没有数据类型.我们所说的类型是变量所指向内存中的对象的类型. py ...
- python学习日记(基础数据类型及其方法01)
数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print ...
随机推荐
- 如何加入 Skype for Business 会议?
参加一个线上培训,收到了Skype的参会地址,是这个样子的 然后就是一脸懵逼的不知道怎么参加会议了.找了半天终于在同事的帮助下参加成功. 我的参加方法:在Window上用Skype for Busin ...
- Authentication failed for "http://xxxxxx"
1.配置用户信息 git config --global user.name [username] git config --global user.email [email] 2.查询用户信息 ...
- 多进程,多线程,使用sqlalchemy 创建引擎(单例模式),闭包装饰器承载数据库会话,装饰模型类的类方法
python 多进程,多线程,使用 sqlalchemy 对数据库进行操作 创建引擎 & 获取数据库会话: 使用类的方式,然后在对象方法中去创建数据库引擎(使用单例,确保只创建一个对象,方法里 ...
- 【转】Java最常见的200+面试题
今天看到一份面试题总结,感觉很到位,主要包括以下模块:Java基础.容器.多线程.反射.对象拷贝.Java Web模块,异常.网络.设计模式.Spring/Spring MVC .Spring Boo ...
- 记一次有趣的tp5代码执行
0x00 前言 朋友之前给了个站,拿了很久终于拿下,简单记录一下. 0x01 基础信息 漏洞点:tp 5 method 代码执行,payload如下 POST /?s=captcha _method= ...
- cell上的按钮点击和左滑冲突
cell上的某个按钮的点击事件,当cell左滑的时候,只要活动的区域也在按钮上,那么按钮的点击事件也会调用. fix: 给按钮添加一个手势(TapGesture)那么当点击的时候就会响应点击手势的方法 ...
- Vue-resoure 实现get post jsonp请求
1.之前学习中,如何发起数据请求? 2.常见的数据请求类型?get post jsonp 3.常见的URL请求资源地址 get请求地址: http://vue.studyit.io/api/getl ...
- Django之简介
一.MVC模型与MTV模型 MVC模型就是Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起 ...
- 版本问题---Bazel与tensorflow的对应关系
源码安装tf的时候,会用到Bazel,版本不对应,后面会引起好多麻烦. echo "deb [arch=amd64] http://storage.googleapis.com/bazel- ...
- 算法102----360笔试(m进制不进位相加最大值)
转自:https://blog.csdn.net/qq_18310041/article/details/99656445 import copy # m进制 m = 5 n = 5 line = [ ...