数据分析就业班
前言
- 创建虚拟环境
conda create -n 环境名称 python版本号
- 删除虚拟环境
conda remove -n 环境名称 --all
- 进入虚拟环境
source activate 环境名称
数组(ndarray):学习库numpy
import numpy as np
1. 创建一个数组
1.1一个一维数组
a = np.array([1,2,3,4])
# print(a)
1.2创建一个多维数组
# 数组要求矩阵维度是一致的,但是列表c没有强制要求
b = np.array([[1,2,3,4],[2,3,4,5]])
# print(b)
c=np.array([[1,2],[2,3,4,5]])
# print(c)
1.3数组可以通过arange来指定数组的区间,可以设置步长,步长可以是小数
d=np.arange(1,10)
# print(d)
1.4数组全为1
# shape指定每个维度的大小,5行6列
e=np.ones(shape=(3,4))
1.5指定数组类似于其他矩阵得形状
f=np.ones_like(e)
# print(f)
1.6创建全为0的数组
g=np.zeros(shape=(3,4))
# print(g)
h=np.zeros_like(d)
# print(h)
1.7empty
# 创建一个数组,没有初始化的数组,初始值是不确定的,随机产生的数,数值没有意义,只是占个地方
i=np.empty(shape=(3,4,2))
#print(i)
j=np.empty_like(np.array([[2,2],[11,4]]))
# print(j)
1.8用户创建一个数组
形状由第一个参数指定(3,4),填充值由第二个参数指定100
k=np.full((3,4),100)
# print(k)
np.full_like(np.array([[2,2],[11,4]]),300)
1.9单位矩阵
# 创建指定长度的矩阵
l=np.eye(5)
# print(l)
1.10创建等差数列
# 1到50之间的等差数列,endpoint=False表示不包括50,是否包含终止点
m=np.linspace(1,50,3,endpoint=False)
# print(m)
1.11创建等比数列
指数上等差,其实就是等比数列,比等差数列多一个base=10(默认)
n=np.logspace(1,10,2,base=10)
print(n)
# arange 和linspace都可以创建等差数列,arange关注步长,linspace侧重于多少个元素
数组要求元素类型一致,列表不要求类型一致
2. 数组的4个相关属性
a=np.array([[1,2,3],[1,2,2],['3',12,2]])
```python
# ndim返回数组的维度
print(a.ndim)
# shape返回数组的形状
print(a.shape)
# 返回数组元素的类型,数组类型一致
print(a.dtype)
# 返回数组中元素的个数(最低维元素的个数)
print(a.size)
# 每个元素占用空间的大小
print(a.itemsize)
# 创建数组时合一指定数组的类型,dtype指定,如果没有指定用则根据元素自动推断
a=np.array([[1,2,3],[1,2,2]],dtype=np.int64)
print(a.dtype)
# '3'表示字符串,摆放位置不同,占用的地方大小也不同
# a:知道时字符串所谓分配的类型就是U1,b:一开始是整数,分配的类型是int32,等遇到字符串时才变成U1
a=np.array(['3',1,2])
print(a.dtype)
b=np.array([1,2,'3'])
print(b.dtype)
2.1类型转换
# 使用数据对象的astype进行转换,不改变原来的,改变后的结果要赋值重新输出
# 改成整数
a=np.array([1.0,1,2,3.2])
b=a.astype(np.int32)
print(b)
2.2不能使用dtype进行类型转换,因为不同类型的数据存储方法不同,可能溢出
3. 改变形状
3.1两种调用方法
- b:np.方法名()
- c:数组对象.方法名(), 其中a是数组对象
a=np.arange(24)
b=np.reshape(a,(3,8))
c=a.reshape(4,6)