欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python数据分析与挖掘(一)

程序员文章站 2024-03-17 14:31:10
...

python数据分析与挖掘(一)

一、数组

1.numpy库导入

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

python数据分析与挖掘(一)

2.数组基本属性

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

python数据分析与挖掘(一)

3.数组元素类型转换

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

python数据分析与挖掘(一)

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

python数据分析与挖掘(一)

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

python数据分析与挖掘(一)

4.改变数组形状

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

python数据分析与挖掘(一)

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

python数据分析与挖掘(一)

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

python数据分析与挖掘(一)

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)

python数据分析与挖掘(一)

6.使用linspace函数创建数组

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

python数据分析与挖掘(一)

7.使用logspace函数创建数组

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

python数据分析与挖掘(一)

8.使用zeros函数创建数组

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

python数据分析与挖掘(一)

9.使用eye函数创建数组

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

python数据分析与挖掘(一)

10.使用diag函数创建数组

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

python数据分析与挖掘(一)

11.使用ones函数创建数组

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

python数据分析与挖掘(一)

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

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

python数据分析与挖掘(一)

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

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

python数据分析与挖掘(一)

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

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

python数据分析与挖掘(一)

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)

python数据分析与挖掘(一)

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

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

python数据分析与挖掘(一)

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

python数据分析与挖掘(一)

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的数据

python数据分析与挖掘(一)

18.数组组合操作

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

python数据分析与挖掘(一)

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

python数据分析与挖掘(一)

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

python数据分析与挖掘(一)

19.数组分割操作

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

python数据分析与挖掘(一)

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

python数据分析与挖掘(一)

相关标签: python 数据分析