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 ... 
随机推荐
- java 任务定时调度(定时器)
			任务定时调度 通过Timer和Timetask,我们可以实现定时启动某个线程. java.util.Timer 在这种实现方式中,Timer类作用是类似闹钟的功能,也就是定时或者每隔一定时间触发一次线 ... 
- Python之(matplotlib、numpy、pandas)数据分析
			一.Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. 它主要用来回事图形,用来展现一些数据,更加直观的展示,让你第一眼就只要数 ... 
- nginx buffer
			1.错误日志:warn:an upstream response is buffered to a temporary file 解决办法:增加fastcgi_buffers 8 4K; fa ... 
- MySQL的安装及简单配置
			一 .数据库概念 Mysql能干嘛呢? 它就是一款软件,安装在任何一台计算机或者服务器上的时候,只要我告诉它创建一个文件,新增一个数据,删除一个数据它就能帮我去做想要的操作 那我们暂且能不能理解为my ... 
- 文件锁 flock/fcntl
			多个进程同时操作一个文件 1. flock int flock(int fd, int operation); LOCK_SH 建立共享锁定.多个进程可同时对同一个文件作共享锁定(读锁定) LOCK_ ... 
- 二、详解mysql数据类型
			一.主要内容 1.介绍mysql中常用的数据类型 2.mysql类型和java类型对应关系 3.数据类型选择的一些建议 二.mysql的数据类型 主要包括以下五大类 整数类型:bit bool t ... 
- Windows Server 2016 IIS的安装与配置
			1. 打开服务器管理器,点击[添加角色和功能选项]. 2. 进入“添加角色和功能向导”页面,点击下一步. 3. 安装类型选择[基于角色或基于功能的安装],点击下一步. 4. 进入服务器选 ... 
- ArrayList之foreach循环删除倒数第二个元素,不触发fail-fast机制
			今天一朋友问了个问题,对于如下一段代码,运行后会有怎样的结果? public class ArrayListTest { public static void main(String[] args) ... 
- linux网络编程之system v信号量(一)
			今天起,学习信号量相关的知识,下面开始: 关于信号量,在前面已经介绍过了,这里回顾一下: 通过上面的描述,很容易就能想到信号量的一上数据结构: 下面再来回顾一下P.V原语: 所谓的原语就是指这段代码是 ... 
- 【转】Python源码学习Schedule
			原文:https://www.cnblogs.com/angrycode/p/11433283.html ----------------------------------------------- ... 
