Numpy的一些操作
1、什么是Numpy
简单来说:
- Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。
- Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。
- Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。
NumPy提供了一个N维数组类型ndarray,它描述了相同类型的“items”的集合。这里的相同类型的item是指每一列的数据类型要一致,不同列不一定。有点像关系表那种。
比如说:

2、N维数组-ndarray
数组属性反映了数组本身固有的信息,任何一个数组实例都可以调用一下方法:
| 属性名字 | 属性解释 |
|---|---|
| ndarray.shape | 数据几行几列 |
| ndarray.size | 数组中的元素数量 |
| ndarray.dtype | 数组元素的类型 |

ps:关于数组的shape
一维数组
- 比如说,a1 = np.array([1,2,3,4])
二维数组
- a2 = np.array([[1,2,3,4],
[5,6,7,8]]) - 注意a有两层 [[...],[...],[...]]
- a2 = np.array([[1,2,3,4],

- 三维数组
a3 = np.array([[[1,2,3],[4,5,6]],[5,6,7,8]])
注意a3有三层 [[[],...],[...],[...]]

3、Numpy基本操作
3.1 生成数组的方法
(1)生成全是0,或全是1
- np.ones(shape, dtype)
- 生成全是1的数组,shape为表示行列的元组(注意是元组,否则报错~)

np.ones_like(a, dtype)
- 生成全是1的数组,shape像数组a
np.zeros(shape, dtype)
np.zeros_like(a, dtype)
(2)从现有的数组中生成
np.array(object, dtype)
np.asarray(a, dtype
a = np.array([[1,2,3],[4,5,6]])
a1 = np.array(a)
# 从现有的数组当中创建,a1和a是独立的两个数组
a2 = np.asarray(a)
# 相当于索引的形式,并没有真正的创建一个新的数组,对a2进行修改,会直接影响到a。
(3)生成固定范围的数组
np.linspace (start, stop, num, endpoint)
np.arange(start,stop, step, dtype)
np.logspace(start,stop, num)
3.2 Numpy的随机数组
关于 numpy.random模块
3.2.1正态分布的随机数组
- np.random.randn(d0, d1, …, dn)
- d0,d1,...,dn 代表维度
- 比如说 c = np.random.randn(1,2,3),代表生成一个三维数组,最外岑一个list,次外层两个list,最内层每个list有三个元素

np.random.normal(loc=0.0, scale=1.0, size=None)
loc:float 此概率分布的均值(对应着整个分布的中心centre) scale:float 此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高) size:int or tuple of ints 输出的shape,不写则输出一个值,写(3,4)则输出三行四列的数组

- np.random.standard_normal(size=None)
3.2.2均匀分布的随机数组
np.random.rand(d0, d1, ..., dn)
返回[0.0,1.0)内的一组均匀分布的数。
np.random.uniform(low=0.0, high=1.0, size=None)
功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.
参数介绍:
low: 采样下界,float类型,默认值为0;
high: 采样上界,float类型,默认值为1;
size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出mnk个样本,缺省时输出1个值。
返回值:ndarray类型,其形状和参数size中描述一致。
np.random.randint(low, high=None, size=None, dtype='l')
从一个均匀分布中随机采样,生成一个整数或N维整数数组,
取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。
3.3 数组索引和切片
- 一维数组
- 直接定位
- 二维数组
- 先行后列,比如a[0:2,0:2],表示数组a的0,1行和0,1列的数据(开区间)


- 三维数组
-从外往内,层层切片
3.4 数组形状修改
ndarray.reshape(shape, order)
- 不改变原来的数组,会重新生成一个shape不同的数组,但是数据与原来数组一样。
ndarray.resize(new_shape)
- 在原来数组上改变形状,不会生成新数组!
ndarray.T
- 数据转置~
3.5 数组类型修改
ndarray.astype(type)
a.astype(np.int32)ndarray.tostring([order])或者ndarray.tobytes([order])
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[12, 3, 34], [5, 6, 7]]])
arr.tostring()
4 参考文献
《Pyhton 科学计算》---张若愚
Numpy的一些操作的更多相关文章
- numpy数组的操作
numpy - 介绍.基本数据类型.多维数组ndarray及其内建函数 http://blog.csdn.net/pipisorry/article/details/22107553 http://w ...
- Numpy | 12 数组操作
Numpy 中包含了一些函数用于处理数组,大概可分为以下几类: 修改数组形状 翻转数组 修改数组维度 连接数组 分割数组 数组元素的添加与删除 一.修改数组形状 函数 描述 reshape 不改变数据 ...
- Numpy 数组简单操作
创建一个2*2的数组,计算对角线上元素的和 import numpy as np a = np.arange(4).reshape(2,2) print (a) #[[0 1] # [2 3]] n1 ...
- python/numpy/pandas数据操作知识与技巧
pandas针对dataframe各种操作技巧集合: filtering: 一般地,使用df.column > xx将会产生一个只有boolean值的series,以该series作为dataf ...
- Numpy 的常用操作
1.创建数组array # 创建数组array import numpy as np a = np.array([1,2,3]) #创建数组 b = np.array([(1.5,2,3), (4,5 ...
- NumPy IO文件操作
NumPy - IO ndarray对象可以保存到磁盘文件并从磁盘文件加载. 可用的 IO 功能有: load()和save()函数处理 numPy 二进制文件(带npy扩展名) loadtxt()和 ...
- Python 学习笔记之 Numpy 库——文件操作
1. 读写 txt 文件 a = list(range(0, 100)) a = np.array(a) # a.dtype = np.int64 np.savetxt("filename. ...
- Numpy数据的操作 * dot() multiply() 的区别
使用numpy时,跟matlab不同: 1.* dot() multiply() 对于array来说,* 和 dot()运算不同 *是每个元素对应相乘 dot()是矩阵乘法 对于matrix来说,* ...
- numpy常用矩阵操作
1.删除列 column_to_delete = [0, 1, 2] arr = np.delete(arr, [0, 1, 2], axis=1) 2.归一化 arr = normalize(arr ...
随机推荐
- H5新增API
H5新增API 选择器 querySelector()和querySelectorAll(),参数都是css选择器,前者返回符合条件的第一个匹配的元素,如果没有则返回Null,后者返回符合筛选条件的所 ...
- hive从入门到放弃(四)——分区与分桶
今天讲讲分区表和分桶表,前面的文章还没看的可以点击链接: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--DDL数据定义 hive从入门到放弃(三)--DML数据操作 分区 ...
- caioj 1000: [视频]整数运算[水题]
题目大意:输入两个整数a和b,输出他们的和. 题解:水题不用题解,简单看一下就知道了-- 代码: #include <cstdio> int a, b; int main() { whil ...
- pip导出项目依赖包名称及版本,再安装命令
A导出依赖 pip freeze >requirements.txt B导入安装依赖 pip install -r requirements.txt 使用下面的命令安装依赖能自动跳过安装错误的依 ...
- win2008升级mysql5.7.20步骤总结
环境: 系统:红帽5.5 旧版mysql:5.5 新版mysql:5.7.20 前期准备: 1.备份旧版mysql数据,不知道data目录在哪可以在my.ini配置文件里面查看datadir指定的目录 ...
- ASP.NET Core WebApi返回结果统一包装实践
前言 近期在重新搭建一套基于ASP.NET Core WebAPI的框架,这其中确实带来了不少的收获,毕竟当你想搭建一套框架的时候,你总会不自觉的去想,如何让这套框架变得更完善一点更好用一点.其中在关 ...
- 挖矿病毒分析(centos7)
因为我在工作的时候被各种挖矿病毒搞过几次,所以在这里整理下我遇到的病毒以及大神们的解决方案. 服务器中挖矿病毒后,最基本的一个特征就是CPU使用率瞬间飙升,此时可以通过top命令进行查看,确认是否有异 ...
- 共读《redis设计与实现》-数据结构篇
准备将之前攒下的书先看一遍,主要是有个大概的了解,以后用的时候也知道在哪里找.所以准备开几篇共读的帖子,激励自己多看一些书. Redis 基于 简单动态字符串(SDS).双端链表.字典.压缩列表.整数 ...
- 普罗米修斯!Ubuntu下prometheus监控软件安装使用
*Prometheus* 是一个开源的服务监控系统和时间序列数据库 官方网站:prometheus.io 一.安装prometheus cd /usr/local/ #进入安装目录 wg ...
- Windows MongoDB 安装 和 常规操作
一.下载&安装 从官网 https://www.mongodb.com/try/download/community 下载,可以根据情况选择响应版本.本文演示版本为 5.0.7 下载 .msi ...