数据分析与展示学习心得

Posted btxlc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析与展示学习心得相关的知识,希望对你有一定的参考价值。

 

IDE 集成开发环境

选择 anaconda

numpy库

ndarray对象的属性

.ndim  秩 及纬度

.shape 尺寸 n行m列

.size 元素的个数

.dtype  元素类型

.itemsize 每个元素的大小 字节

 

创建方法:

1.从列表, 元组中创建

可以自行设置dtype=np.int32

2. 自带函数

np.arange() 同range() 只有这个生成是int类型 其他都是浮点类型

np.ones() 根据shape生成一个全1的数组

np.zeros()

np.full(shape,value)  根据shape生成一个全value的数组

np.eye(n) 生成一个n*n的矩阵, 左上右下的对角线为1,其他为0 即单位矩阵

np.ones_like(a) 根据a的形状生成一个全1数组

np.zeros_like(a)

np.full_like(a,value)

 

np.linspace(start, end, step, endpoint=Ture)  例如,1,10,4  生成[1,4,7,10] 如果为false 则最后一个元素是否为生成中的一个

np.concatenate((a,b)) 将a,b合成一个新数组

 

.reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变 要保证元素的总体个数不改变

.resize(shape)原数组改变

.swapaxes(ax1, ax2) 将数组n个维度中的两个维度进行调换

.flatten() 降维 原数组不变

.astype(new_type)改变数组类型 原数组不变

 

.tolist() 数组转换为列表

 

索引和切片

一维同python

二维a[1,2] a[-1,-2]

a[:1,-3]

a[:,1:2,:]

 

 

一元函数

以下函数都不会改变原数组

np.abs(a)

np.fabs(a)

np.sqrt(a)

np.square(a)

np.log(a) np.log10(a) np.log2(a)

np.ceil(a) np.floor(a)  ceiling值 不超过元素的整数值  floor 小于元素的整数值

np.rint(a) 四舍五入

np.modf(a) 小数和整数部分以两个独立数组返回 整数部分也是浮点数

np.sin(a) 

np.exp(a) 各个元素的指数值

np.sign(a) 符号值,正数1负数-1

二元函数

+ - * / **

np.maximum(a,b) np.fmax() 如果数据不同 则改变成相同

np.mod(a,b)

np,copysign(a,b) 将b中各元素的符号赋值给a

> < >= <= == != 各元素进行比较 返回布尔数组 

 

CSV文件(Comma-Seperated Value) 逗号分隔值

np.savetxt(frame, array, fmt=‘%.18e‘, delimter=None)

frame:文件,字符串或产生器 可以是.gz .bz2格式的压缩文件

fmt %d  %.3f  %.18e

delimter 分隔符号

np.loadtxt(frame, dtype=np.float, delimter=None)

只能存读一维和二维数组

 

a.tofile(frame, sep=‘‘, format=‘%d‘)

如果sep为空 则为二进制文件, 看不懂

b = np.fromfile(‘2.dat‘, dtype=np.int, count=-1, sep=‘‘)

count 为个数, -1 为全部

 

np.save(‘a.npy‘, a)
b = np.load(‘a.npy‘)

 

random库

np.random.rand(shape)

np.random.randn(shape) 正太分布

np.random.randint(low, high, shape)

np.random.seed() 随机数种子

技术分享图片

技术分享图片

技术分享图片

 

统计函数

技术分享图片

技术分享图片

 

 技术分享图片

 

 斜率运算

 

 

 

手绘风格图片转换

 

import numpy as np

from PIL import Image

a = np.asarray(Image.open(1.jpg).convert(L)).astype(float)

depth = 10
grad = np.gradient(a)
grad_x, grad_y = grad
grad_x = grad_x * depth /100.
grad_y = grad_y * depth /100.
A = np.sqrt(grad_x ** 2 + grad_y ** 2 + 1.)
uni_x = grad_x / A
uni_y = grad_y / A
uni_z = 1. / A

vec_el = np.pi / 2.2
vec_az = np.pi / 4.
dx = np.cos(vec_el) * np.cos(vec_az)
dy = np.cos(vec_el) * np.sin(vec_az)
dz = np.sin(vec_el)

b = 255 * (dx * uni_x + dy * uni_y + dz * uni_z)
b = b.clip(0, 255)


im = Image.fromarray(b.astype(uint8))
im.save(2.jpg)

 

matplotlib库

1 import matplotlib.pyplot as plt
2 
3 plt.plot([0, 2, 4, 6, 8], [3, 1, 4, 5, 2])
4 plt.subplot(3, 2, 4)
5 plt.ylabel("grade")
6 plt.axis([-1, 10, 0, 8])
7 plt.savefig(13, dpi=300)
8 plt.show()

 

 

 1 import numpy as np
 2 import matplotlib.pyplot as plt
 3 
 4 def f(t):
 5     return np.exp(-t) * np.cos(2 * np.pi * t)
 6 
 7 a = np.arange(0, 5, 0.02)
 8 
 9 plt.subplot(211)
10 plt.plot(a, f(a))
11 
12 plt.subplot(212)
13 plt.plot(a, np.cos(2 * np.pi * a))
14 plt.savefig(3, dpi=600)
15 plt.show()

 

 

format_string

r--d 红色虚线

前面是颜色 后面是风格最后是标记

-  实线

-- 破折线

-. 点划线

: 虚线

‘‘ ‘ ‘ 无线条

 

 

标记字符

. 点标记

, 像素标记 极小的点

o 实心圈

v 倒三角

^ 上三角

> 右三角

< 左三角

1 下花三角

s 实心方形

p 实行五角星

* 星形

h 竖六边形

H 横六边形

+ 十字标记

x  x标记

D 菱形标记

d 痩菱形

| 垂直线标记

color=  linestyle= marker= markerfacecolor= markersize=

 

支持中文字体

1 # import matplotlib
2 # matplotlib.rcParams[‘font.family‘] = ‘SimHei‘
3 # 全局改变
4 
5 plt.xlabel(你好, fontproperties=SimHei, fontsize=12)
6 plt.ylabel("你好呀", fontproperties=SimHei, fontsize=12)
7 # 部分改变

 

plt.xlabel()

plt.ylabel()

plt.title()

plt.text() 在任意位置加文本

plt.annotate() 增加带箭头的注解




以上是关于数据分析与展示学习心得的主要内容,如果未能解决你的问题,请参考以下文章

Javalucene4.0学习心得

向Linus学习,让代码具有good taste

vue.js入门基础的学习心得,体会,笔记

窦小凤2020寒假学习心得

python的学习心得与体会

uml学习心得