py库笔记


标签(空格分隔): numpy python 《利用Python进行数据分析》


NumPy(数组和矢量计算)

  • 快速多效的数组对象ndarray
  • 线性代数运算、傅里叶变换、随机数生成
  • 用于C、C++、Fortran代码集成到Python的工具

ndarray基础

类型说明
.ndimdimension的缩写,维度
.shape返回(n,m)=n行m列
.size元素个数
.T转置矩阵
.A将矩阵转化为array数组类
函数说明
array()将输入数据转换为ndarray
ones()根据指定形状和dtype创建一个全1数组
zeros()创建一个全0数组
empty()创建一个未初始化数组
arange()生成连续元素数组
copy()返回一个副本
reshape()重建.shape
.unique()去重
data = [1,2,3,4,5,6]
x = numpy.array(data)
print data
print x

#[1, 2, 3, 4, 5, 6]
#[1 2 3 4 5 6]
x = np.array(['1','2','3'],dtype = np.string_)
y = x.astype(np.int32)
print x
print y

#['1' '2' '3']
#[1 2 3]

copy()示例

x = np.array([0,1,2,3,4,5,6,7,8,9,10])
y = x.copy()
print y

reshape()示例

a = np.arange(10)
b = a.reshape(5,2)
print b

矢量化计算

x = np.array([1,2,3])
print x*2
print x>2
print x*x

索引与切片

基本索引没区别,添加了布尔索引和花式索引

x = np.array([3,2,3,1,3,0])
# 布尔型数组的长度必须跟被索引的轴长度一致
y = np.array([True,False,True,False,True,False])
print x[y] # [3,3,3]
print x[y==False] # [2,1,0]
x = np.array([[0,1],[2,3],[4,5],[6,7],[8,9]])
print x,'\n'
print x[[0,1],:],'\n'
print x[:,[0]],'\n'

print x[[0,1]][:,[0,1]],'\n' # 打印01行的01列 [[1,2],[3,4]]

print x[[0,1],[0,1]],'\n' # [1,4] 打印x[0][0]和x[1][1]

用索引改变数组的值,不改变规模

#coding=utf-8
import numpy as np
arr3d = np.array([[
                   [1,2,3],
                   [4,5,6]
                  ],
                  [
                   [7,8,9],
                   [10,11,12]
                  ]])
print arr3d[0],'\n\n'
arr3d[0] = 4
print arr3d

基本数值函数

函数说明
.floor()小于等于该值的最大整数
.rint()将各元素四舍五入到最接近的整数

.where() 快速取值

where是三元表达式x if condition else y的矢量化版本

cond = [[True, False], [True, True]]
np.where(cond,
      	[[1, 2], [3, 4]],
      	[[9, 8], [7, 6]])
#array([[1, 8],[3, 4]]
# True时从x取值,False时从y取值

统计方法

方法说明
.sum()求和,当加入axis=1以后就是将一个矩阵的每一行向量相加
.mean()求算术平均数
.max().min()求最大最小
.argmax().argmin()求最大最小索引
.mean(a, axis=0)求均值,axis=0,计算每一列的均值,axis=1,计算行的
print x.mean(axis=1) # 对每一行的元素求平均
print x.mean(axis=0) # 对每一列的元素求平均

集合运算

方法说明
.intersect1d()求交集
.union1d()求并集

矩阵运算

import numpy.linalg 模块。线性代数(linear algebra)

函数说明
.diag()返回方阵的对角线元素,或将一维数值转换为方阵
.dot()矩阵乘法
.trace()计算对角线元素的和
.det()计算矩阵行列式
.eig()计算方阵特征值和特征向量
.inv()计算方阵的逆
.svd()计算奇异值分解(SVD)
.cov()协方差矩阵,rowvar=1(默认)表示每一行代表一个变量

随机数生成

。。。

stack(),hstack(),vstack()

pandas

源于panel data计量经济学术语和Python data analysis(Python数据分析),它基于python构建。

DataFrame(源于R语言的data.frame对象)

面向列的二维表结构,含有行标和列标

matplotlib

figure

  • 创建
fig = plt.figure()
#第二个参数为figsize,图的大小
  • 显示
plt.show()
  • 创建多个图一起显示
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
plt.show()
  • 坐标轴不可见
plt.axis('off')
  • 显示灰度图
plt.imshow(img, cmap ='gray')#黑底
plt.imshow(img, cmap = plt.cm.gray)#黑底
plt.imshow(img, cmap = plt.cm.gray_r)#白底

pyplot

散点图

简单示例

x = [1,2,3]
y = [4,5,6]
plt.scatter(x,y)
plt.show()

核心函数:scatter()

源自官方文档:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
  • x,y:要画的点的位置
  • s:点的大小,默认20
  • c:点的颜色,默认蓝色
  • marker:点的形状,默认为圆
  • cmap:当c为浮点数时使用,。。。
  • norm:当c为浮点数时使用,。。。
  • vmin, vmax:当norm使用时使用,。。。
  • alpha:不透明度,【0,1】
  • linewidths:点的外边框,默认不开启
  • verts:。。。
  • edgecolors:外边框颜色
  • 。。。

直方图

折线图

  • 画图核心代码
plt.plot(x,y)

图例与助记

综合

SciPy

求微积分和矩阵

python原生

string.

string.strip()

去除首尾XX字符

str = "   iloveyou   "
print(str.strip())
##iloveyou

#IPython(Notebook)

xxx?

显示信息,叫做对象内省

快捷键

快捷键功能
tab补全
Ctrl-c中断

其他

python哲学

import python

''前面的字母

  • r’'表示纯字符串,用在文件路径上
  • u’'表示unicode编码

json(JavaScript Object Notation)

一种web数据格式

可以通过import json的方法来将JSON字符串转换成Python对象。

import json
path = '...txt'
records = [json.loads(line) for line in open(path)]#字典

records是二维数组,records[0]是一个字典

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值