首页 > 其他 > 详细

NumPy的基本用法

时间:2019-04-25 19:36:16      阅读:124      评论:0      收藏:0      [点我收藏+]


NumPy简介:
NumPy是高性能科学计算和数据分析的基础包。是pandas等其他各种工具的基础
NumPy主要功能:
ndarray,一个多维数组结构,高效且节省空间
无需循环对数组数据进行快速运算的数学函数
线性代数、随机数生成和傅里叶变换功能
安装方法:
pip3 install numpy
引用方式:
import numpy as np


例如:已知若干家跨国公司的市值(美元),将其转换为人民币
a = [ramdom.uniform(1000.0, 2000.0), for i in range(50)]
dic = 6.8
a=np.array(a)
a*dic //得出结果


例如:已知购物车的商品价格和商品数量求商品总金额
price = [ramdom.uniform(100.0, 200.0), for i in range(50)]
quantity=[ramdom.randint(1,10), for i in range(50)]
price=np.array(price)
quantity=np.array(quantity)
price*quantity //每个商品总价 每一项分别相乘
price*quantity.sum() //所有商品总价

 

ndarray方法:
np.array(array_like) //转化为多维数组,数组对象内元素类型必须相同,数组大小不可更改

a = np.array(range(20))
1、a.dtype //存的数据的类型
ndarray数据类型
布尔型:bool_
整型:int_ int8 int16 int32 int64 //数字表示位
无符号整型:uint8 uint16 uint32 uint64 //只表示0和正数
浮点:float_ float16 float32 float64
复数:complex_ complex64 complex128
2、a.size //返回个数
3、a=np.array([ [1,2,3], [4,5,6] ]) //二维数组"一张纸"
a=np.array([ [1,2,3], [4,5,6] ],
[ [7,8,9], [10,11,12] ]) //三维数组"一个本"
a.shape //二维返回行列,三维返回行列厚
4、a.T //行转列
5、a.ndim //查看维数


ndarray创建:

1、np.zeros(10,dtype=‘int‘) //10个0,默认是float
np.ones(10) //10个0
a=np.empty(100) //随机值,之前内存的残值。要确认以后会赋值就用这个
np.arange(2,100,3)//起始值,结束值,步长,步长可为小数
np.linspace(0,100,101) //[起始值,结束值],个数。等差数列
np.arange(15),reshape((3,5)) //15个数变成3行5列的二维数组


ndarray运算:

向量:ndarray
标量:1,2,3,4等

ndarray可以和标量运算:
ndarray可以和ndarray运算:+-*/><


ndarray索引:
一维数组: a[0] a[1] a[2]
二维数组:a[0][0] a[0,0]

ndarray切片:
一维数组切片:
a[0:4:2] //开始位置,结束位置,步长
ndarray切片 和 普通列表切片有什么不同?
ndarray切片默认是原数组的引用,修改切片会导致原数组修改
除非使用:a[0:4].copy()才复制一份
二维数组切片:
例如a=np.array([ [1,2,3], [4,5,6] ])
切1,2,4,5逗号左边是行右边是列
a[0:2,0:2]


ndarray布尔型索引:
例如:给一个数组,选出数组中所有大于5的数
a=np.arange(10)
a[a>5]
原理://先执行a>5得到布尔数组,
//布尔索引:把同样大小的布尔数组传进索引,这样把a里对应为True的返回

例如:选出数组中大于5的偶数
a[(a>5) & (a%2==0)] //用&要加括号,不加报错
a[(a>5) | (a%2==0)] //或


ndarray花式索引:
一维数组
a = np.arange(20)
取出1,3,4,6,7位置的值
b=[1,3,4,6,7]
a[b]
二维数组
a[0,2:3] 第一行切片
a[0:a[0]>2] 第一行大于2的
a[[1,3],:][:,[1,3]] 取1,3行中的1,3列

 

NumPy的基本用法

原文:https://www.cnblogs.com/staff/p/10770242.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!