Python 数据库(numpy,pandas,matplotlib)学习笔记

引言

结尾

一.numpy库使用

1.numpy的引用(约定俗成,简化写成np):

2.创建数组的方式

array方法

zeros,ones:两个()

arange方法:生成一维正整数

3.数组计算方式

非矩阵计算

矩阵运算

4.数组随机数生成和统计计算

随机数生成

统计计算

排序

5.数组索引

一维数组索引

二维数组索引

for循环迭代


引言

  由于目前学校课程所需,学习python数据库,但学校讲的方式失去逻辑且过快,自己也就稍微整理了一些(可能偏向于新手和考试编程一类)。

结尾

因为这个库的内容太多了,有点写不动了,等我缓缓再补充,不会烂尾的,duck 放心9.28/11.04

一.numpy库使用

1.numpy的引用(约定俗成,简化写成np):

import numpy as np

2.创建数组的方式

array方法

注意:行列:先行后列

           没有double,int64/32跟电脑的位数有关

           注意多维数组格式array(),小括号自带,[[  ],[  ]]二维数组,[   ] 一维数组,没有的话会让计算机误认为dtype = [  ]

import numpy as np
array1 = np.array([[10,20,30],[12,13,14]]) # 创建二维数组,赋予其数组属性,引用np的函数array
print(array1.ndim) # 维度  二维
print(array1.shape) # 形状  行列数(2*3)
print(array1.dtype) # 元素类型  int64

# 将上述组合
array2 = np.array([[10,20,30],[10,20,30]],dtype = np.int64)
array3 = np.array([[10,20,30],[10,20,30]],dtype = float) # 没有double

输出结果:

2
(2, 3) # 以元组形式返回
int64
zeros,ones:两个()
zero = np.zeros((3,4)) # 3行*4列的二维数组,注意输出为浮点数0.
one = np.ones((3,4))  #注意输出为浮点数,全为1.
print(zero)
print(one)

输出结果:

[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]
arange方法:生成一维正整数

注意:arange(12)从0到11,左闭右开区间,其余操作类似列表

e = np.arange(12)
f = np.arange(4,12)
g = np.arange(1,24,3) # 步长为3
h = np.arange(12).reshape(3,4) # 重新定义形式

print(e)
print(f)
print(g)
print(h)

输出结果:

[ 0  1  2  3  4  5  6  7  8  9 10 11]
[ 4  5  6  7  8  9 10 11]
[ 1  4  7 10 13 16 19 22]
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

3.数组计算方式

非矩阵计算

方式有点类似线性代数,不完全相同,对每一个一一对应的元素进行前7步,对每一个元素进行后2步,可以自行输出结果

注意:相除得到浮点数

           arr1>3返回的是每一个元素进行比较,返回True/False

arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.array([[4,5,6],[7,8,9]])

print(arr1 + arr2) # 相加
print(arr1 - arr2) # 相减
print(arr1 * arr2) # 相乘
print(arr1 ** arr2)  # 幂
print(arr1 / arr2)  # 除
print(arr1 % arr2)  # 取余
print(arr1 // arr2) # 取整
print(arr1 + 2) # 加常数
print(arr1 * 2) # 乘常数
print(arr1 > 3) # 比较
矩阵运算

线性代数:注意条件,第一个矩阵的列数 == 第二个矩阵的行数

arr1 = np.array([[1,2],[4,5]])
arr2 = np.array([[4,5],[7,8]])
# 矩阵相乘的两种方式
print(np.dot(arr1,arr2))
print(arr1.dot(arr2))
# 矩阵转置的两种方式
print(arr1.T)
print(np.transpose(arr1))

4.数组随机数生成和统计计算

随机数生成
sample = np.random.randint(0,10,size = (4,3))# 从0-9中随机生成4行3列的矩阵
统计计算
sample = np.random.randint(0,10,size = (4,3))# 从0-9中随机生成4行3列的矩阵

np.sum(sample) # 计算矩阵中所有元素的和
np.min(sample) # 计算矩阵中最小元素
np.max(sample) # 计算矩阵中最大元素

np.sum(sample,axis=0) # 计算矩阵每一列的和
np.sum(sample,axis=1) # 计算矩阵每一行的和

np.argmin(sample) # 计算矩阵中最小元素的索引
np.argmax(sample) # 计算矩阵中最大元素的索引

# 两种方法
np.mean(sample) # 计算矩阵中元素的平均值
sample.mean() # 计算矩阵中元素的平均值

np.median(sample) # 计算矩阵中元素的中位数

np.sqrt(sample) # 计算矩阵中元素的平方根
排序

是对每一行进行排序,注意格式

sample = np.random.randint(0,10,size = (4,3))# 从0-9中随机生成4行3列的矩阵

print(np.sort(sample))

异常数据处理

np.clip(sample,0,10) # 元素<0 变成0,>10,变成10

5.数组索引

一维数组索引
arr1 = np.arange(2,10)
# 2 3 4 5 6 7 8 9
print(arr1[3])
# 5
print(arr1[3:-1])
# [5 6 7 8]
print(arr1[:6])
# [2 3 4 5 6 7]
print(arr1[-2:])
# [8 9]
二维数组索引

注意:每一行,每一列的索引都是从0开始,n-1结束

           :表示每一行/每一列都要

arr2 = np.array([[1,2,3],[4,5,6],[7,8,9]])
# 1 2 3
# 4 5 6
# 7 8 9
print(arr2[1])
# [4 5 6]
print(arr2[1,1])
# 5
print(arr2[1][2])
# 6
print(arr2[:,2])
# [3 6 9]
for循环迭代
arr2 = np.array([[1,2,3],[4,5,6],[7,8,9]])
# 1 2 3
# 4 5 6
# 7 8 9
for i in arr2:
    print(i)
# 迭代输出数组的每一行

for i in arr2.flat:
    print(i)
# 迭代输出数组的每一个元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值