数据分析三大法宝之numpy

哈喽!大家好!很高兴与大家分享自己numpy的学习笔记。以下的笔记内容如有不足之处或错误,欢迎补充和斧正。

俗话说:“工欲善其事,必先利其器”。

1.numpy模块介绍
  • NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。
2.numpy创建数组
1) array
2) zero()
3) ones()
4) linespace()
5) arange()
6) random系列
2.1创建一维数组	
# 首先要导入numpy模块
import numpy as np    #  以下操作都基于此,不在一一导入		
arr = np.array([1,2,3])
arr

运行结果:
array([1, 2, 3])
2.2创建二维数组(可以拓宽到多维数组)
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
arr

运行结果:
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
2.3创建一维的等差数列数组,num是元素的个数
np.linspace(0,10,num=6)

运行结果:
array([ 0.,  2.,  4.,  6.,  8., 10.])
2.4创建33列元素为1的二维数组
np.ones(shape=(3,3))

运行结果:
array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])
2.5 创建一维等差数列 step为等差值
np.arange(10,30,step=2)

运行结果:
array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28])
2.6 创建44列随机元素的数组 (0,20)为随机范围,size=(行,列)
np.random.randint(0,20,size=(4,4))

运行结果:
array([[ 5, 16,  5, 13],
       [ 7, 11,  3, 15],
       [ 3, 17, 18, 19],
       [ 8, 14, 16,  3]])
3.数组与列表的区别(类比法)
    - 列表中存储的数据类型可以不一样
	- 数组中存储的数据类型必须一样
举例说明
列表:
list = [1,'a','abc','你好']
list

运行结果:
[1, 'a', 'abc', '你好']

数组:
arr=np.array([1,2,3])
arr

运行结果:
array([1, 2, 3])
4.numpy的常用属性
	- shape
    - ndim
    - size
	- dtype
创建一个随机数组为以下数组属性的演示做准备
arr = np.random.randint(0,10,size=(5,6))
arr

运行结果:
array([[13, 41, 79, 33, 24, 44],
       [73, 24, 93, 28, 60, 12],
       [78, 41,  8,  9, 31,  3],
       [ 8,  2, 28, 77, 62, 48],
       [14, 65, 87, 38, 38, 58]])
4.1 arr.shape # 返回的是数组的形状(即5行6列)
运行结果:(5,6)
4.2 arr.ndim # 返回数组的维度(即二维)
运行结果:2
4.3 arr.size # 返回数组元素的个数
运行结果:30
4.4 arr.dtype #返回数组元素的类型
运行结果:dtype('int64')
4.5 type(arr) #数组的数据类型
运行结果:numpy.ndarray
5.numpy的数据类型

在这里插入图片描述

注意:
array(dtype=?):可以设定数据类型
arr.dtype = '?':可以修改数据类型
举例
# 创建一个数组作为演示(未改变元素类型时)
arr = np.array([6,6,6])
arr.dtype

运行结果:
dtype('int32')
# 改变元素类型之后
arr = np.array([6,6,6],dtype='int64')
arr.dtype

运行结果:
dtype('int64')
6.numpy的索引和切片操作(通用)
6.1 numpy的索引的操作
# 创建一个随机数组作为演示
arr = np.random.randint(1,10,size=(3,3))
arr

运行结果:
array([[6, 5, 2],
       [3, 8, 6],
       [4, 8, 4]])
1) 取出数组中下标为1的行数据(注意:下标的索引是从0开始)
arr[1]

运行结果:
array([3, 8, 6])
2) 取出数组中多行的数据
arr[[1,2]]  # 取出第1行和第三行的数据

运行结果:
array([[6, 5, 2],
       [4, 8, 4]])
6.2 numpy的切片的操作
1)切出arr数组的前两行的数据
arr[0:2]

运行结果:
array([[6, 5, 2],
       [3, 8, 6]])
2)切出arr数组中的前两列
# 前一个冒号为行切片,0:2为列切片,即arr[行切片,列切片]
arr[:,0:2]  

运行结果:
array([[6, 5],
       [3, 8],
       [4, 8]])
3) 切出前两行的前两列的数据
arr[0:2,0:2]

运行结果:
array([[6, 5],
       [3, 8]])
4) 将数组的行倒置(列倒置:arr[:,::-1])
arr[::-1]

运行结果:
array([[4, 8, 4],
       [3, 8, 6],
       [6, 5, 2]])
6.3 numpy的变形reshape
# arr为3行3列二维数组
array([[6, 5, 2],
       [3, 8, 6],
       [4, 8, 4]])


#将二维的数组变形成1维,9为数组元素的个数
arr.reshape((9,))

运行结果:
array([6, 5, 2, 3, 8, 6, 4, 8, 4])

# 将一维变形成多维
arr.reshape((3,3))

运行结果:
array([[6, 5, 2],
       [3, 8, 6],
       [4, 8, 4]])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值