python数据分析----Numpy (一)

一、导入模块

import numpy as np

二、创建 ndarray 对象,以及一些基本操作

1、使用 numpy.arange 创建

np.arange(start,end,step,dtype)

2、使用numpy.array 创建

np.array(list,dtype)

3、获取数组的维度和数据类型

3.1、返回一个元组,存放对象每一个维度上的大小

 array.shape 
 
3.2、获取numpy数组类型的元素

 array.dtype 

4、numpy 自带的一些创建特殊数组的函数

a = np.zeros((2,2)) # 创建一个值为0的2*2多维ndarray对象
b = np.ones((1,2)) # 创建一个值均为1的2*2维ndarray对象
c = np.full((2,2),7) # 创建一个值均为7的2*2维ndarray对象
d = np.eye(2) # 创建一个2*2维对角矩阵
e = np.eye(3,k=-2) #第二个参数k:默认情况下输出的是对角线全“1”,其余全“0”的方阵, 如果k为正整数,则在右上方第k条对角线全“1”其余全“0”,k为负整数则 在左下方第k条对角线全“1”其余全“0”

5、创建随机数矩阵

np.random.random((4,5)) # 值的范围(0,1)
np.random.randint(0,50,10) # 创建10个0~50以内的类型为int的数组

6、help查看某个方法或者属性的帮助文档

help(np.random.randint)

7、创建自定义类型,‘字符串类型’需要用np.str_

t = np.dtype([('name',np.str_,40),
              ('num',np.int32),
              ('price',np.float32)])
7.1 查看某个字段的数据类型
 t['price']
7.2 使用自定义数据类型
product = np.array([('DVD',23,12.4),('Butter',23,8.23)],dtype=t)

8、查看数组中元素的个数
product.size

三、数组的索引和切片
索引

1、一维数组的索引
读取数组的方式,与读取list 、元组一样,可以使用下标

list2 = [10,20,30,40]

2、二维数组的索引

arr2 = np.array([range(1,5),range(5,9)])
arr2[1][2]

3、三维数组的索引

# np.arange(start,end,step='1') step 可以为浮点型
arr3 = np.arange(1,25).reshape(2,3,4)
切片

1、切一维数组

a = np.arange(1,19)
# 语法 a[start:end:step]
a[1::2]
a[::-2]

2、切二维数组

b = np.arange(1,7,0.5).reshape(3,4)
[each[0] for each in b]  # 推导式取值
b[::]
b[::][0]

b[0][3]
# 数组array 多层读取的时候,可以b[0][3] 写成b[0,3]
b[0,3]

# 本质上 是 array[start:end:step,start:end:step,...]
b[::,0]

四、改变数组的维度
改变数组维度

1、reshape() 不改变原数组

result1 = arr.reshape(4,6)

2、通过shape属性进行更改,直接更改原数组

arr.shape = (6,4) # 获取数组的维度,通过属性更改

3、通过resize(),直接更改原数组

arr3.resize(3,2,4)

展平数组

1、array.ravel() 展平,不更改原数组

result4 = arr4.ravel()

2、array.flatten()展平,不更改原数组

result5 = arr4.flatten()

矩阵转置

1、array.transpose() 转置,不改变原数据
arr5.transpose()

五、数组的组合
horizontal   水平的
vertical     垂直度
concatenate  连接
axis         轴  axis = 0 跨行   axis = 1 跨列
row          行
column       列

1、水平组合

np.hstack((数组1,数组2,...))
np.concatenate((数组1,数组2,...),axis=1)

2、垂直组合

np.vstack((数组1,数组2,...))
np.concatenate((m,dM),axis=0)  axis 默认为0,可以省略

3、深度组合

np.dstack((数组1,数组2,...))
比如:每个班有3个组,每组3个人。将2个班 对应组的对应位置的人组合到一起

4、列组合

column_stack((数组1,数组2,...))
若是 组合 二维数据,则 和 hstack 相同

5、行组合

row_stack((数组1,数组2,...))
若是 组合 二维数据,则 和 vstack 相同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值