设为首页 加入收藏

TOP

NumPy笔记(一)
2017-09-30 16:25:01 】 浏览:3701
Tags:NumPy 笔记

  最近在看《利用Python进行数据分析》这本书,也会在网上查看一些资料,所以会对某些感觉比较重要的部分进行总结,一方面加深自己对一些方法的记忆,一方面方便自己以后的大总结。

  基本概念:

  Numpy(Numerical Python)是高性能科学计算和数据分析的基础包
  NumPy的ndarray:多维数组对象,快速灵活的大数据集容器
  所有元素必须是同类型

  可以查看官方文档https://docs.scipy.org/doc/numpy/reference/routines.html,也可以到http://download.csdn.net/download/nsguf/9944297进行下载。

  以下源码下载:https://github.com/NSGUF/PythonLeaning

 常用属性:

print(np.version.version)#numpy的版本

data1=[1,2,3,4]
arr1=np.array(data1)
print(arr1)
data2=[[1,2,3,4],[5,6,7,8]]
arr2=np.array(data2)
print(arr2)

print("------------属性---------------")
print(arr2.ndim)#数组的维数
print(arr2.shape)#数组的维度
print(arr2.size)#数组的元素总个数
print(arr2.dtype)#数组中元素的类型
print(arr2.itemsize)#数组中每个元素的字节大小
print(arr2.data)#实际数组元素的缓冲区
#NumPy自带了很多数据类型比如int16,int32等,取值时可用np.int16
#NumPy的转换方式为
print(np.int32(12.123))

  创建数组的方法:

print("------------创建数组的方法--------------")
print(np.ones((2,3,4),dtype=np.int16))#全为1的多维数组
print(np.empty((2,3)))#为空的多位数组,只分配内存,不初始化,所以运行速度快
print(np.full(4,np.pi))#初始化为指定值
print(np.random.random((2,3)))#生成shape为2,3的随机数组
print(np.arange(10,30,5))#以10开始差值为5的等差数列,不包含30
print(np.linspace(10,30,4))#第一个数为10,最后一个数为30,取5个等差数 
print(np.logspace(0,2,5))#等比数列,从10^0到10^2中5个数
print(np.arange(4))#相当下面的式子
print(np.arange(0,4,1))
print(np.arange(12).reshape(4,3))#更换成shape为4,3
a=np.arange(24).reshape(2,3,4)
#print(a.resize(24))#resize作用与reshape相同,但是调用resize将会改变自身,reshape不会
b=np.arange(4)
print(a)#shape为2,3,4,ps:总个数必须为shape的乘积,否则报错
print(a[1,...])#等同于a[1]
print(a[1])#第2个整列
print(a[0,1])#取第一整列的第三列
print(a[1,1,1])#第2大列的第2行的第2列,一个元素

  对数组进行操作和运算:

print("------------对数组进行操作--------------")
c=a-b#加减乘除都可,将元素分别对应加减乘除,shape必须对应,除的话注意除数为0的情况
print(c)
print(a**2)#会对数组每个元素进行处理,也可进行一下方法遍历
print(a.sum())#总和
print(a.min())#最小的数
print(a.max())#最大的数
print(a.cumsum())#获取每个数的前n的和,比如前1个位0,前2个位0+1,前3个位0+1+2以此类推
d=np.arange(12).reshape(3,4)
print(d.sum(axis=-2))#总和
print(d.min(axis=0))#最小的数
print(d.max(axis=-1))#最大的数
print(d.mean())#算术平均数
print(d.std())#标准差
print(d.var())#方差
print(d.argmin())#最小索引
print(d.argmax())#最大索引
print(d.repeat(5))#重复
print(np.power(b,3))#b的3次方
print(np.repeat(3, 4))#创建一个一维数组,元素为3,重复4次
print(d.cumsum(axis=1))#获取每个数的前n的和,比如前1个位0,前2个位0+1,前3个位0+1+2以此类推
print(d.cumprod())#所有元素的累积积
#总结:当没有axis参数的时候,默认为全部元素,当值为0或-2时,表示每个列中的第一个数,当值为1或-1时,表示以列做运算,其他值则报错
s=np.array([4,3,1,45,2,1,23])
s.sort()#排序
print(np.unique(s))#找出唯一值并排序

  布尔值数组方法:

print("------------布尔值数组方法--------------")
bools=np.array([False,False,True,False])
print(bools.any())#是否存在一个或多个True
print(bools.all())#全是True
print(a.ravel())#将shape值设为(元素总个数),相当于a.reshape(a.size)
print(a.ravel().shape)
print(np.sin(a))
print(np.floor(a))#向上取整
c=a.copy()#深拷贝
print(c is a)
print(a)

  对数组进行遍历的方式:

print("------------对数组进行遍历--------------")
for row in a:#遍历行
    print(row)
for element in a.flat:#遍历每个元素
    print(element)

  数组文件的输入输出:

print("------------数组文件输入输出--------------")
np.save("save_a.npy",a)#将数组以.npy扩展名存入磁盘
np.load("save_a.npy")
np.savez('array_a_b.npz',a=a,b=b)#将a和b一起存储
arc
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇算法学习(十) 下一篇Python, Django 性能分析工具的使..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目