python数据分析

** 如有错误,感谢指正**

请根据目录寻找自己需要的段落

导语:本博客为个人整理Python学习帖,如有错误,感谢指正。系统学习,欢迎持续关注,后续会涉及自动化办公,爬虫,python大数据,算法,人工智能基础—对接AI。欢迎关注,python基础阶段结束,会更新AIOT相关博客,欢迎大家讨论相关AIOT技术,如有大佬愿意加入团队,欢迎私信。

实战项目为:用户消费行为数据分析,餐厅订单数据分析。别的实战项目就不方便更新了,可以私信我讨论一些你遇到的问题,能解决我给解决一下,大家共同进步!

环境

环境入门,建议 只部署anaconda即可 ipython不好用,jupyter集成在anaconda里了,安装方法:CSDN别的大神发了很多教程,可以照着安装,切记安装最新的
环境部署

数据类型

bool_布尔类型
int_默认整数型
intcint32/int64
intp用于索引的整数类型
int8-128 to 127
int16
int32----
int64-----
uint8无符号整数
unit16----
unit32----
unit64-----
float_float64
float16半精度
float32单精度
float64双精度
complex_128位复数
complex64双32位浮点数
complex128双64位

每个内建类型都有一个唯一定义它的字符代码

b 浮点型
i 整型(有符号)
u 无符号整型
f 浮点型
c 复数浮点型
m 时间间隔 timedelta
M datetime 日期时间
O对象
S,a 字符串(byte_)
U Unicode
V 原始数据 void

数据类型对象dtype
数据类型对象是用来描述与数组对应的内存区域如何使用:

数据的类型
数据的大小
数据的字节顺序
在结构化类型的情况下,字段的名称、每个字段的数据类型和每个字段所取的内存块的部分
如果数据类型是子数组,它的形状和数据类型

创建数据类型对象
numpy.dtype(object,align,copy)

object 要转换为的数据类型对象
align true 表示 填充字段使其类似c的结构体
copy flase表示 对内置数据类型对象的引用

import numpy as np
dt = np.dtype(np.int32)
print(dt)
print(type(dt))
import numpy as np
dt = np.dtype(np.‘i4’)
print(dt)
print(type(dt))
import numpy as np
dt = np.dtype(np.<i4’)
print(dt)
print(type(dt))
import numpy as np
student = np.dtype([("name","s20"),("age",'i4'),('marks','f4')])
print(student )
print(type(student ))

Array

array()函数

numpy.array(object,dtype = None,copy=True,order=None,subok=False,ndmin=0) 
# 创建Ndarry数组对象
# object 数组或嵌套的数列
# dtype 数组对象数据类型
# copy 对象是否需要复制
# order 创建数组的样式,C行 F列 A任意方向(默认)
# subok 默认返回一个与基类类型一致的数组
# ndmin 指定生成数组的最小维度
import numpy as np
arr = np.array([1,2,3,4,5])
print(arr)
print(type(arr))
import numpy as np
arr = np.array([1,2,3,4.5,5,6,7,8])
print(arr)
print(type(arr))
import numpy as np
arr = np.array([[1,2,3,4,5],[1,2,3,4,5]])
print(arr)
print(type(arr))
import numpy as np
arr = np.array([1,2,3,4,5],ndmin=2)
print(arr)
print(type(arr))
import numpy as np
arr = np.array([1,2,3,4,5],dtype=np.float) # dtypr='f'
print(arr)
print(type(arr))
import numpy as np
student= np.dtype([("name","S20"),("age","i4"),("marks","f4")])
arr = np.array([("sunck",18,99.999),("kaige",19.99.998)],dtype=student)
print(arr)
print(type(arr))

asarray()

numpy.asarray(a.dtype=None,order=None)
# a 任意类型的输入参数
# dtype 数据类型可选
# order 可选  C F
import numpy as np
arr = np.array((1,2,3,4,5)) 
print(arr)
print(type(arr))
import numpy as np
arr = np.array([(1,2,3),(4,5)]) 
print(arr)
print(type(arr))

empty()

numpy.empty(shape,dtype=float,order='C')
# 创建一个指定形状、数据类型且未初始化的数组
# shape 数组形状
# dtype 数据类型 可选
# order “C"、"F" 
import numpy as np
arr = np.empty([3,2],dtype=int) 
print(arr)
print(type(arr))

zeros()

numpy.zeros(shape,dtype=float,order='C')
# 创建指定大小的数组,数组元素以0来填充
# shape
# dtype
# order ’C‘、'F'
import numpy as np
arr = np.zeros(5,detype = int) 
print(arr)
print(type(arr))
import numpy as np
arr = np.zeros([3,2],detype = [('x','i4'),('y','f')]) 
print(arr)
print(type(arr))

ones()

numpy.ones(shape,dtype = None,order = 'C')
# 创建指定性状的数组,数组元素以1填充
# shape
# dtype
# order
import numpy as np
arr = np.ones(5,detype = int) 
print(arr)
print(type(arr))
import numpy as np
arr = np.ones([3,2],detype = [('x','i4'),('y','f')]) 
print(arr)
print(type(arr))

full()

numpy.full(shape,fill_value,dtype=None,order='C')
# 创建指定形状的数组,数组元素以fill_value 填充
# shape
# fill_value 填充的数据
# dtype
# order 'C','F'
import numpy as np
arr = np.full(5,fill_value=1024,dtype='i4') 
print(arr)
print(type(arr))

eye()

numpy.eye(N,M=None,k=0,dtype=float,order'C')
# 对角线为1 其他位置是0
# N 行数量
# M 列数量,默认等于行数量,可选
import numpy as np
arr = np.eye(10,detype = int) 
print(arr)
print(type(arr))

arange()

numpy.arange(start,stop.step.dtype)
# 创建数值范围并返回ndarray对象,根据start与stop指定范围以及step设定步长,生成一个ndarray
# start 起始值,默认为0
# stop 终止值(不包含)
# step 步长,默认为1
# dtype 返回ndarray的数据类型,默认选择输入数据类型
import numpy as np
arr = np.arange(1,11,1) 
print(arr)
print(type(arr))

frombuffer()

numpy.frombuffer(buffer,dtype=float,count=1,offset=0)
# 用于实现动态数组,接受buffer输入参数,以流的形式读入转换成ndarray对象
# buffer是字符串的时候,p3默认str是Unicode类型 转成bytestring在原str前加上b
# buffer 可以是任意对象,会以流的形式读入
# dtype 返回数组的数据类型
# count 读取的数据数量,默认为-1 读取所有数据
# offset 读取的起始位置,默认为0
import numpy as np
x = b"sunck is a good man"
arr = np.frombuffer(x,detype = 'S1',count=5,offset=2) 
print(arr)
print(type(arr))

fromiter()

numpy.fromiter(iterable,dtype.count=-1)
# 从可迭代对象种简历ndarray对象,返回一维数组
import numpy as np
x=[1,2,3,4,5]
z=iter(x)
arr = np.fromiter(z,detype = 'f') 
print(arr)
print(type(arr))

linspace()

numpy.linspace(start,stop.num=50,endpoint=True,retstep=False,dtype=None)
# 创建一个一维数组,数组是一个等差数列构成
# start 序列起始值
# stop 序列终止值 如果endpoint为True 则 包含该值
# num 要生成的等步长的样本数量 默认50
# retstep 如果为True,生成数组中会显示间距,反之不显示 默认 false
import numpy as np
arr = np.linspace(1,10,10,dtype='i4') 
print(arr)

logspace()

numpy.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None)
# 等比
# base 对数log的底数,默认是10
import numpy as np
arr = np.logspace(1.0,2.0,10) 
print(arr)

random.rand()

rand(d0,d1,...,dn)
# 生成[0,1)之间的随机数
import numpy as np
arr = np.random.rand() 
print(arr)
print(type(arr))
import numpy as np
arr = np.random.rand(3) 
print(arr)
print(type(arr))
import numpy as np
arr = np.random.rand(3,2) 
print(arr)
print(type(arr))

random.random()

random(size=None)
import numpy as np
arr = np.random.random(3) 
print(arr)
print(type(arr))

random.randint()

randint(low,high=None,size=None,dtype='1')
# 生成随机数
# low 下限
# high 不包含的上限
# size 个数
import numpy as np
arr = np.random.randint(0,10,5) 
print(arr)
print(type(arr))

random.randn()

randn(d0,d1,...,dn)
# 返回一个或一组样本,具有标准正态分布
import numpy as np
arr = np.random.randn() 
print(arr)
print(type(arr))
import numpy as np
arr = np.random.randn(2,4) 
print(arr)
print(type(arr))
import numpy as np
arr = np.random.randn(4,3,2) 
print(arr)
print(type(arr))

random.normal()

normal(loc=0.0,scale=1.0,size=None)
# 生成高斯分布的概率密度随机数
# loc 浮点型,此概论分布的均值
# scale 浮点型,此概论分布的标准差
# size 输出的shape 默认为None,只输出一个值

numpy数组与python中列表的对比
效率对比 numpy要块很多

Ndarray数组属性

NumPy数组的维数称为秩(rank) ,一维数组的秩为1,二维数组的秩为2,以此类推
在NumPy中,每一个线性的数组称为是一个轴(axis) ,也就是维度(dimensions) 。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是NumPy中的轴(axis) ,第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量—秩, 就是数组的维数。
很多时候可以声明axis。axis=0, 表示沿着第0轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作

常用属性

属性说明
ndim秩,轴的数量/维度的数量
shape数组的维度,对于矩阵,n行m列
size数组元素的总个数,相当于.shape中n*m的值
dtypendarray对象的元素类型
itemsizendarray对象中每个元素的大小,以字节为单位
flagsndarray对象的内存信息
realndarray元素的实部
imagndarray元素的虚部
data包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性
import numpy as np
arr = np.random.randn(4,3,2) 
print(arr)
print(type(arr))
print(arr.ndim)
print(arr.shape)
arr.reshape(3,2)
print(arr.shape)
print(arr.size)
print(arr.dtype)
print(arr.itemsize)
print(arr.flags)# 属性用的少,需要了解百度查查就行

数组操作

索引和切片

ndarray对象的内容可以通过索引或切片来访问和修改。 与Python 中list
的切片操作一样ndarray数组可以基于0-n的下标进行索引,切片对象可以通过内置的slice函数,并设置start,stop及step参数进行, (从原数组中切割出一个新数组)

import numpy as np
arr = np.arrange(10)
print(arr)
arr[1]
s = slice(2,7,2)
print(arr[s])
# start:stop:step:  类比python,多用就会了,规则自行百度,看一眼就会的东西
arr2=arr[2:7:2]
print(arr2)
arr[5]
arr[2:]
arr[2:6]
arr[:6]
# 多维数组 原理一样
arr=np.arange(15)
arr.shape=(5,3)
arr[2]
arr[2][1]
arr[2:]
arr[1:3]

切片还可以包括省略号…,来使选择元组的长度与数组的维度相同。

import numpy as np
arr=np.arange(15)
arr.shape=(5,3)
arr[...,1]
arr[1,...]
arr[1:3,...]
arr[...,1:]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨竹菊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值