Python数据分析之NumPy库

NumPy库简介

NumPy库使用Python进行科学计算,尤其是数据分析时,所用到的一个基础库。它是大量Python数学和科学计算包的基础,比如我们后面会讲到的pandas库就用到了NumPy。pandas库专门用于数据分析,充分借鉴了Python标准库NumPy的相关概念。而Python标准库所提供的内置工具对数据分析方面的大多数计算来说都过于简单而不够用。

为了更好地理解和使用Python所有的科学计算包,尤其是Pands,需要先掌握Numpy库的用法,这样才能把pandas的用处发挥到极致。

NumPy库的核心

整个NumPy库的基础是ndarray(即N维数组)对象。它是一种由同质元素组成的多维数组 ,元素数量是事先指定好的。同质指的是几乎所有元素的类型和大小都相同。事实上,数据类型由另外一个叫做dtype的NumPy对象来指定;每个ndarray只有一种dtype类型。

数组的维数和元素数量由数组的型来确定,数组的型由N个正整数组成的元组来指定,元组的每个元素对应每一维的大小。数组的维统称为轴,轴的数量被称为秩。

Numpy数组的另一个特点是大小固定,也就是说,创建数组时一旦指定好大小,就不会再发生改变。这与Python的列表有所不同,列表的大小是可以改变的。

numpy 提供了两个基本的对象: ndarray 和 ufunc. ndarray是存储数据的多维数组, 而 ufunc 是对数组进行处理的函数。

2.numpy 的安装:

pip install numpy
如何创建一个 ndarray对象
import numpy as np
data = np.array([1,2,3])
data = np.asarray([1,2,3])
print(data)
#>>> [1 2 3]

将ndarray转回list类型

df = data.tolist()
print(df)
#>>> [1,2,3]

查看矩阵的形态

df = data.shape
print(df)
#>>>(3,)

查看矩阵的维度

df = data.ndim
print(df)
#>>> 1

生成区间数,0-10之间 左臂右开

df = np.arange(10)

print(df)

#>>> [0 1 2 3 4 5 6 7 8 9]

df1 = np.arange(20).reshape(4,5)

print(df1)

#>>>
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]]

矩阵的乘积

df = np.dot(data[1],data[2])
print(df)
#>>> 6

矩阵的元素个数

df = data.size
print(df)
#>>> 3

矩阵的求和

df = np.sum(data)
print(df)
#>>> 6

求取平均值

# 求得平均值并保留小数点后两位
df = round(np.mean(data),2)
print(df)
#>>> 2

随机种子,固定编码

#random.seed()的作用就是在第一次生成后,每次运行都固定生成数据不变
np.random.seed(10)
#随机生成2-50之间的数, 并且形态为 5行 3列 的矩阵
df = np.random.randint(2,50,size=(5,3))
print(df)
#>>> 
[[11 38 17]
 [ 2 30 27]
 [31 31 10]
 [11  2 44]
 [42 38 18]]

行,列 的拼接

date = np.arange(10).reshape(2,5)
date1 = np.arange(15).reshape(3,5)
date2 = np.arange(16).reshape(2,8)
df1 =np.r_[date,date1]  #r_ 行的拼接  , 列必须相同
df2 = np.c_[date,date2]   #c_  列的拼接,  行必须相同
print(df1)
print(df2)
#>>> 
[[ 0  1  2  3  4]
[ 5  6  7  8  9]
[ 0  1  2  3  4]
[ 5  6  7  8  9]
[10 11 12 13 14]]

[[ 0  1  2  3  4  0  1  2  3  4  5  6  7]
[ 5  6  7  8  9  8  9 10 11 12 13 14 15]]

生成随机n到y之间的 等差数列 [起n 始y]

#随机生成n-y之间的10个数,但是起始位和结束位为它们自身
df = linspace(start=n,stop=y,num=10)
print(df)
#>>> 
[0.00240676 0.54881636 0.12697184 0.07979268 0.2350386  0.65996495
0.21495319 0.20304662 0.38286511 0.2248728 ]

T矩阵转置, 行变例

data = np.arange(20),reshape(2,2,5)
df =data.T
print(data)
print(df)
#>>>>
[[[ 0  1  2  3  4]
  [ 5  6  7  8  9]]

 [[10 11 12 13 14]
  [15 16 17 18 19]]]
  
[[[ 0 10]
  [ 5 15]]

 [[ 1 11]
  [ 6 16]]

 [[ 2 12]
  [ 7 17]]

 [[ 3 13]
  [ 8 18]]

 [[ 4 14]
  [ 9 19]]]

花了一点时间, 写了一下numpy 常用的一些方法, 同样是为了加强记忆, 也希望能帮到刚学的朋友!!!

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lonelypatients°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值