Numpy/Pandas

Numpy

特点:

  • 数组ndarray数据结构存储,数据地址是连续的--------
  • 支持并行化运算(向量运算
  • 底层实现使用了大量的C语言和BLAS(总之很高级)
  • 众多机器学习框架和基础库

生成范围o~1的随机500行,504列数据

import numpy as np

stock_day_rise = np.random.normal(0,1,(500,504))

shape()返回(行,列)数的元祖
T 表示数组的转置
条件赋值,与复合条件赋值

stock_day_rise[stock_day_rise < 0] = 0  # 小于0的赋值为0
heihei = np.where(np.logical_and(stock_day_rise >0,stock_day_rise < 1),0,1)  # 大于0的赋值为0,小于1的赋值为1

数组相乘的条件(a * b)

shape对应位要么相同,要么一方为1

A可以和以下其他所有的数组相乘:

import numpy as np


A = np.random.normal(0,1,(5,4))

b = np.random.randint(5,23,(5,4))
c = np.random.randint(5,23,(5,1))
d = np.random.randint(5,23,(1,4))
e = np.random.randint(5,23,(1,1))
f = np.random.randint(5,23,(4,23,7,5,1))

s1 = A * b
s2 = A * c
s3 = A * d
s4 = A * e
s5 = A * f

矩阵

矩阵是内部数据类型相同的二维数组
矩阵乘法和数组乘法规则不一样,且方法也不一样

矩阵乘法

( M 行 ,N 列 )* ( N 行 ,L 列 )

np,mat(a) 数组转矩阵
np.matmul(a,b) 矩阵乘法

import numpy as np


A = np.random.normal(0,1,(5,4))
g = np.random.randint(5,10,(4,7))
print(type(A))  # <class 'numpy.ndarray'>
a = np.mat(A)
print(type(a))  # <class 'numpy.matrixlib.defmatrix.matrix'>
g = np.mat(g)

ag = np.matmul(a,g)
print(ag)
print(ag.shape)  # (5, 7)

数组/矩阵 切分与合并

import numpy as np

a = np.random.randint(1,5,(2,2))
b = np.random.normal(0,1,(2,2))

aa = a[0:1,0:2]  # 逗号前表示行切片,逗号后表示列切片
bb = b[1:2,0:2]
# print(aa)
c = np.concatenate([aa, bb], axis=0) # axis = 0 表示行合并
print(c)
[[ 1.          4.        ]
[-1.15576414 -0.57434214]]

d = np.hstack([a,b])  # horizontal  水平的
e = np.vstack([a,b])  # vertical   垂直的
print(d)
[[ 1.          3.         -0.8578937  -1.38945041]
[ 3.          3.          0.08307616  0.59907079]]
print("*"*20)
print(e)
[[ 1.          3.        ]
[ 3.          3.        ]
[-0.8578937  -1.38945041]
[ 0.08307616  0.59907079]]

f,g,h,i = np.split(e, 4, axis=0)  # 行分割,分四行
print(f)
[[2. 4.]]
IO操作 Numpy不适合做数据读取,数据读写使用Pandas

Pandas

  • 以numpy为基础,运算性能高
  • 基于matplotlib,能够简便绘图
  • 独特的数据结构
  • 专用于数据挖掘和机器学习的库
  • 用于处理几个GB,最大1~2T的中小数据量
Pandas 三大数据结构
  • Series(一维数组)

  • DateFrame(二维数组)

  • Panel(三维数组,很少用)

  • 行,index,axis = 0

  • 列,columns, axis = 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值