Numpy(1)
来源:互联网 发布:沥青库存数据 编辑:程序博客网 时间:2024/06/08 04:25
Numpy
标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计算时间。
此外Python还提供了一个array模块,array对象和列表不同,它直接保存数值,和C语言的一维数组比较类似。但是由于它不支持多维,也没有各种运算函数,因此也不适合做数值运算。
NumPy的诞生弥补了这些不足,NumPy提供了两种基本的对象:
1. ndarray(N-dimensional array object)
2. ufunc(universal function object)
ndarray(下文统一称之为数组)是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。
import numpy as np
a=np.array([1,2,3,4]) #一维数组b=np.array([5,6,7,8])#第0轴的长度为3,第1轴的长度为4c=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]]) #3*4的数组c
array([[ 1, 2, 3, 4], [ 4, 5, 6, 7], [ 7, 8, 9, 10]])
c.shape
(3, 4)
#数组c的shape改为(4,3),注意从(3,4)改为(4,3)并不是对数组进行转置#而只是改变每个轴的大小,数组元素在内存中的位置并没有改变c.shape=4,3
c
array([[ 1, 2, 3], [ 4, 4, 5], [ 6, 7, 7], [ 8, 9, 10]])
c.dtype
dtype('int64')
#当某个轴的元素为-1时,将根据数组元素的个数自动计算此轴的长度,#因此下面的程序将数组c的shape改为了(2,6):c.shape=2,-1
c
array([[ 1, 2, 3, 4, 4, 5], [ 6, 7, 7, 8, 9, 10]])
#reshape方法,可以创建一个改变了尺寸的新数组,原数组的shape保持不变d=a.reshape(2,2)d
array([[1, 2], [3, 4]])
a
array([1, 2, 3, 4])
#数组a和d其实共享数据存储内存区域,#因此修改其中任意一个数组的元素都会同时修改另外一个数组的内容:a[1]=1000d
array([[ 1, 1000], [ 3, 4]])
#dtype属性获得来改变数组元素数型,float浮点型np.array([[1,2,3,4],[4,5,6,7],[8,9,10,11]],dtype=np.float)
array([[ 1., 2., 3., 4.], [ 4., 5., 6., 7.], [ 8., 9., 10., 11.]])
#np.comlex是有复数型式np.array([[1,2,3,4],[4,5,6,7],[8,9,10,11]],dtype=np.complex)
array([[ 1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j], [ 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j], [ 8.+0.j, 9.+0.j, 10.+0.j, 11.+0.j]])
0 0
- Numpy(1)
- numpy module 1 -- Numpy tutorial
- Numpy学习笔记1-numpy入门
- Numpy学习(1)numpy文件存取
- NumPy实战:Chapter-1(初识NumPy)
- NumPy学习笔记(1)
- NumPy使用手记 (1)
- NumPy 数组1
- NumPy使用手记 (1)
- Numpy 入门教程(1)
- numpy简明教程(1)
- Numpy 入门教程(1)
- numpy 数组-1
- Numpy使用1
- NumPy学习笔记1
- numpy入门1
- Numpy 入门教程(1)
- numPy 学习1
- 联想G480类似没有小键盘开关的机器
- Spring Boot 使用Java代码创建Bean并注册到Spring中
- Android自定义控件之下拉刷新;
- 扩展Unity编辑器菜单指南
- Android SystemProperties系统属性详解
- Numpy(1)
- 给定一个数n,输出n的环形矩阵
- ExtJs6第二弹-- 学会查看ExtJs api文档
- cocos2d-x经验分享-spine边界框(碰撞框)
- Visual Studio中监视数组
- 一个lua版的zset数据结构实现
- c/c++内存管理
- 阻塞和非阻塞的区别
- SpringjdbcTempete的配置文件