数据分析2-numpy

在这里插入图片描述

基本示例

#coding=utf-8
import random

import numpy as np

#使用numpy生成数组,得到ndarray的类型
t1=np.array([1,2,3,])
print(t1)
print(type(t1))

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

t3=np.arange(4,10,2)##生成一个数组
print(t3)
print(t3.dtype)

#numpy中的数据类型
t4=np.array(range(1,4),dtype="int64")
print(t4)
print(t4.dtype)

#numpy中的小数,生成10个0到1的数字
t5=np.array([random.random() for i in range(10)])
print(t5)

a=random.random()
print(a)

在这里插入图片描述
在这里插入图片描述

数组的计算

在这里插入图片描述

#coding=utf-8
import random
import numpy as np

t1 = np.arange(12)
print(t1)
print(t1.shape)

在这里插入图片描述

# 二维数组
t2 = np.array([[1, 2, 3], [4, 5, 6]])
print(t2)
print(t2.shape)  # 结果第一个数表示行数,第二个表示列数片

在这里插入图片描述

# 三维数组
t3 = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(t3)
print(t3.shape)  # 结果第一个数为块数,第二个表示为每一块中的行数,第三个数表示每一块中的列数

在这里插入图片描述

# 二维数组的计算
t2 = np.array([[1, 2, 3], [4, 5, 6]])
t3=np.array([[1, 2, 3], [4, 5, 6]])
print(t2+t3)

在这里插入图片描述
在这里插入图片描述
(3,3,3)第一个3表示3块数组,第二个3表示3行,第三个3表示3列。

numpy读取本地数据和索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二维数组的转置

#coding=utf-8
import numpy as np

t2=np.arange(24).reshape(4,6)
print(t2)

print(t2.transpose())#

在这里插入图片描述

numpy的索引和切片

1.取单行

#coding=utf-8
import numpy as np

t1=np.arange(45).reshape(9,5)
print(t1)

#取第三行
print("第三行数据为:",t1[2])

在这里插入图片描述

2.取多行

#coding=utf-8
import numpy as np

t1=np.arange(45).reshape(9,5)
print(t1)

print("第二行及其之后的数据\n",t1[1:])

#取不连续的多行
print("取3,5,6行",t1[[2,4,5]])

#取行
print("22",t1[2:])
print("33",t1[[2,8,3],:])#第三,九,四行

在这里插入图片描述
在这里插入图片描述

3.取单列和多列

#coding=utf-8
import numpy as np

t1=np.arange(45).reshape(9,5)
print(t1)
#取单列
print(t1[:,0])

#取连续多列
print(t1[:,2:])#第三列之后的

#取不连续多列
print(t1[:,[0,2]])#第1列和第3列

在这里插入图片描述

4.取点

#取多行和多列
print(t1[2,3])#3行4列

b=t1[2:5,1:4]#第三行到第五行,第二列到第四列
print(b)#取的是交叉点的位置

#取多个不相邻的点
c=t1[[0,2,2],[0,1,3]]#(0,0,)(2,1)(2,3)
print(c)

在这里插入图片描述

numpy修改数值

#coding=utf-8
import numpy as np
t1=np.arange(30).reshape(5,6)
print(t1)
print(t1>10)

在这里插入图片描述

import numpy as np
#创建数组
t1=np.arange(30).reshape(5,6)
#打印数组
print(t1)
print("="*30)

#输出bool值
print(t1>10)
print("="*30)

#数组值的修改,<10改为0
# t1[t1<10]=0
print(t1)
print("="*30)

在这里插入图片描述

numpy数组的拼接

竖直分割为竖直方向,可以记忆为竖直拼接为竖直方向

#coding=utf-8
import numpy as np
t1=np.arange(30).reshape(5,6)
t2=np.arange(20).reshape(4,5)
print(t1)

#行交换
t1[[1,2],:]=t1[[2,1],:]
print(t1)
print("="*30)

#问:如何把两份数据整合到一起
#构造全为0的数据
zeros_data=np.zeros((t1.shape[0],1))
ones_data=np.ones((t2.shape[0],1))

#分别添加一列全为0,1的数据
t1=np.hstack((t1,zeros_data))
t2=np.hstack((t2,ones_data))

#拼接两组数据

print(np.vstack((t1)))

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

numpy中的nan和inf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值