数据分析基础之numpy

一、基本概念

1、什么是Numpy
一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型、多维数组上执行数值运算

二、数组的创建和改变维数

1、numpy创建数组(矩阵)

import numpy as np
# 三种创建数据的方法,数组的类名为ndarray,数据的类型为int32
t1 = np.array([1, 2, 3])
print(t1)
print(type(t1))

t2 = np.array(range(10))
print(t2)
print(type(t2))

t3 = np.arange(4, 10, 2)
print(t3)
print(type(t3))
print(t3.dtype)

E:\python3\python.exe H:/PythonProject/DataAnalyse/numpy_course/new_arry.py
[1 2 3]
<class 'numpy.ndarray'>
[0 1 2 3 4 5 6 7 8 9]
<class 'numpy.ndarray'>
[4 6 8]
<class 'numpy.ndarray'>
int32

在这里插入图片描述
指定创建数组的数据类型

import numpy as np
t4 = np.array(range(1, 4), dtype=float32)
print(t4)
print(t4.dtype)
----------------------------------------------------------------------------------
E:\python3\python.exe H:/PythonProject/DataAnalyse/numpy_course/new_arry.py
[1. 2. 3.]
float32

Process finished with exit code 0
import numpy as np
t5 = np.array([1,0,0,1,1,0],dtype=bool)
print(t5)
print(t5.dtype)
---------------------------------------------------------------------------
E:\python3\python.exe H:/PythonProject/DataAnalyse/numpy_course/new_arry.py
[ True False False  True  True False]
bool

修改数组的数据类型:

t5 = np.array([1,0,0,1,1,0],dtype=bool)
print(t5)
print(t5.dtype)
t6 = t5.astype("int8")
print(t6)
print(t6.dtype)
--------------------------------------------------------------
E:\python3\python.exe H:/PythonProject/DataAnalyse/numpy_course/new_arry.py
[ True False False  True  True False]
bool
[1 0 0 1 1 0]
int8

取小数并保留两位

t7 = np.array([random.random() for i in range(10)])
print(t7)
print(t7.dtype)

t8 = np.round(t7, 2)
print(t8)
-------------------------------------------------------------------------
E:\python3\python.exe H:/PythonProject/DataAnalyse/numpy_course/new_arry.py
[0.04811729 0.1599298  0.37288476 0.01717569 0.44839734 0.65061334
 0.33807003 0.60770559 0.6994518  0.35313622]
float64
[0.05 0.16 0.37 0.02 0.45 0.65 0.34 0.61 0.7  0.35]

数组的形状:
在这里插入图片描述
修改数组的形状:reshape()接收的参数是一个元组
调用reshape()方法不会对数组本身进行修改
在这里插入图片描述
使用新的参数取接受reshape()的返回值
在这里插入图片描述
把数组转化为1维数据
在这里插入图片描述
当不知道数组的个数进行降维时
在这里插入图片描述
shape[0]*shape[1]代表总共个数
另一个简单方法, 按照行进行展开:
在这里插入图片描述

三、数组的计算

1、数组和数的计算
给数组加一个数即给每一个元素都加上一个数字,分别进行计算。
这是一个Numpy的广播机制造成的,在运算过程中,加减乘输的值被广播到所有的元素上面。
在这里插入图片描述
2、数组和数组的计算
在这里插入图片描述
在这里插入图片描述
不同维度的计算
在这里插入图片描述
在这里插入图片描述
满足后缘维度的轴长相符的例子
在这里插入图片描述
长度为1的例子:
在这里插入图片描述
shape为(2,3,4)和(2,4)
在这里插入图片描述

轴(axis):在numpy中可以理解为方向,使用0,1,2…数字表示,对于一个一维数组,只有一个0轴,对于2维数组(shape(2,2)),有0轴和1轴,对于三维数组(shape(2,2, 3)),有0,1,2轴
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

四、numpy读取数据

在这里插入图片描述

np.loadtxt(fname,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)

在这里插入图片描述
现在这里有一个英国和美国各自youtube1000多个视频的点击,喜欢,不喜欢,评论数量([“views”,“likes”,“dislikes”,“comment_total”])的csv,运用刚刚所学习的只是,我们尝试来对其进行操作

import numpy as np

us_file_path = "US_video_data_numbers.csv"
uk_file_path = "GB_video_data_numbers.csv"

t1 = np.loadtxt(us_file_path,dtype=int,delimiter=",")
t2 = np.loadtxt(uk_file_path,dtype=int,delimiter=",")

print(t1)
print('*'*50+'分割线'+'*'*50)
print(t2)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
转置矩阵的三种方法
在这里插入图片描述

五、numpy索引和切片

取数组中的某一行

import numpy as np
us_file_path = "US_video_data_numbers.csv"
t2 = np.loadtxt(us_file_path,dtype=int,delimiter=",")

print(t2) 
print('*'*50+'分割线'+'*'*50)
# 取某一行
print(t2[2]) # 或者print(t2[2, ])

在这里插入图片描述
取连续的多行

print(t2[2:])  
#或者 print(t2[2:, :]) 逗号后面的冒号表示全部列都取到

在这里插入图片描述
取不连续的多行
变为二维数组且不连续就要再加一个中括号

print(t2[[1,4,7]])
#print(t2[[1,4,7],:])

在这里插入图片描述
取列

# 取某列
print(t2[:, 0])
# 取连续的多列
print(t2[:, 2:])
# 取不连续的多列
print(t2[:,[1,3]])

在这里插入图片描述

取第三行,第四列的值

print(t2[2,3])

取多行和多列,取第3行到第5行,第二列到第四列的结果:

print(t2[2:5,1:4])

在这里插入图片描述
取一些不相邻的点

print(t2[[0,2,2],[0,1,3]])

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值