python数据分析与挖掘(一)

python数据分析与挖掘(一)

一、数组

1.numpy库导入

import numpy as np   #起一个别名
arr = np.array([1,2,3,4])   #创建一个一维数组
print('创建的数组是:',arr)

运行结果

2.数组基本属性

print('数组的维数是:',arr.ndim)
print('数组的长度是:',arr.shape)
print('数组的元素个数是:',arr.size)
print('数组中每个元素的类型是:',arr.dtype)
print('元素类型所占字节数是:',arr.itemsize)

运行结果

3.数组元素类型转换

arr2 = np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]],dtype = np.float32)   #设置为32位浮点型数据
print('创建的二维数组是:\n',arr2)

运行结果

a = np.array([1,2,3],dtype = np.int8)   #创建数组,定义数据类型
print('源数据类型为:',a.dtype)
b = np.int32(a)   #将类型改为int32
print('更改后的类型为:',b.dtype)

运行结果

print(np.float64(42))
print(np.int8(42))
print(np.bool(42))
print(np.bool(0))
print(np.float(True))
print(np.float(False))

运行结果

4.改变数组形状

arr2.shape = (4,3)   #改变数组形状,重新设置行列数
arr2

运行结果

a = np.arange(12)   #创建一个一维数组
print('创建的数组为:',a)
b = a.reshape(3,4)   #改变数组形状为3行4列的二维数组
print('改变形状后数组为:\n',b)

运行结果

print('二维数组按横向展平:',b.ravel())
print('二维数组按纵向展平',b.flatten(order = 'F'))

运行结果

5.使用arange函数创建数组

arr3 = np.arange(1,10,1)   #1-10之间的数步长为1
print(arr3)
arr4 = np.arange(0,1,0.1)   #0-1之间的数步长为0.1
print(arr4)

运行结果

6.使用linspace函数创建数组

arr5 = np.linspace(0,100,20,endpoint = False)   #从0到100之间取20个元素,是一个等差数列,设置取不到100,不显示小数
print(arr5)

运行结果

7.使用logspace函数创建数组

arr6 = np.logspace(0,2,20)   #10º到10²之间产生的20个数,是一个等比数列
print(arr6)
arr6.shape = 4,5   #改变形状成二维数组
print('改变形状后的数组是:\n',arr6)

运行结果

8.使用zeros函数创建数组

arr7 = np.zeros((4,5))   #创建4行5列,数组元素全是0的二维数组
print(arr7)

运行结果

9.使用eye函数创建数组

arr8 = np.eye(3)   #3×3的数组,斜对角是1
print(arr8)

运行结果

10.使用diag函数创建数组

arr9 = np.diag([1,2,3,4])   #4×4的数组,斜对角是1 2 3 4
print(arr9)

运行结果

11.使用ones函数创建数组

arr10 = np.ones((3,5))   #创建3行5列,数组元素只有1的二维数组
print(arr10)

运行结果

12.使用random函数生成随机数

print('生成随机数是:\n',np.random.random(10))   #生成0-1之间,随机的浮点数10个

运行结果

13.使用rand函数生成随机数

print(np.random.rand(7,5))   #随机生成0-1之间的7行5列的二维数组

运行结果

14.使用randint函数生成随机数

print(np.random.randint(2,10,size = [2,5]))   #2-10之间,2行5列的随机整数

运行结果

15.自定义数据类型

df = np.dtype([('name',np.str_,40),('numitems',np.int64),('price',np.float64)])   #创建数据类型
print('数据类型为:',df['name'])
print('数据类型为:',df['numitems'])
itemz = np.array([('tomatoes',42,4.14),('cabbages',13,1.72)],dtype = df)   #自定义数据类型
print('自定义数据为:',itemz)

运行结果

16.使用randn函数生成随机数

print(np.random.randn(2,3,2))   #随机生成两个3行2列符合正太分布的二维数组

运行结果

17.数组的切片操作

arr = np.arange(10)
print('创建的数组为:',arr)
print('数组切片第5个元素为:',arr[5])
print('数组切片结果:',arr[3:5])   #3-5之间的元素,不包括5
print('数组切片结果:',arr[:5])   #起始位置到5之间的元素
print('数组切片结果:',arr[-1])   #最后一个元素
arr[3:5] = [100,200]
print(arr)   #改变数组内元素
print('数组切片结果:',arr[1:9:2])   #1-9之间的元素,步长为2

运行结果

a = np.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])
print('创建的多维数组为:\n',a)
print('数组切片结果:',a[1,2:4])   #行下标为1,列下标为2-4的数据
print('数组切片结果:\n',a[1:3,2:4])   #行下标为1-3,列下标为2-4的数据

运行结果

18.数组组合操作

a1 = np.arange(12).reshape(3,4)   #创建一个3行4列的二维数组
a2 = a1 * 3
print('第一个数组为:\n',a1)
print('第二个数组为:\n',a2)

运行结果

print(np.hstack((a1,a2)))   #给两个数组横向组合
print(np.vstack((a1,a2)))   #给两个数组纵向组合

运行结果

c1 = np.concatenate((a1,a2),axis = 1)   #给两个数组横向组合
print(c1)
c2 = np.concatenate((a1,a2),axis = 0)   #给两个数组纵向组合
print(c2)

运行结果

19.数组分割操作

print(np.hsplit(c2,2))   #数组横向分割
print(np.vsplit(c2,3))   #数组纵向分割

运行结果

print(np.split(c2,2,axis = 1))   #数组横向分割
print(np.split(c2,3,axis = 0))   #数组纵向分割

运行结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小红打小蓝

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

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

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

打赏作者

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

抵扣说明:

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

余额充值