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)
print ( '创建的二维数组是:\n' , arr2)
a = np. array( [ 1 , 2 , 3 ] , dtype = np. int8)
print ( '源数据类型为:' , a. dtype)
b = np. int32( a)
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 )
print ( '改变形状后数组为:\n' , b)
print ( '二维数组按横向展平:' , b. ravel( ) )
print ( '二维数组按纵向展平' , b. flatten( order = 'F' ) )
5.使用arange函数创建数组
arr3 = np. arange( 1 , 10 , 1 )
print ( arr3)
arr4 = np. arange( 0 , 1 , 0.1 )
print ( arr4)
6.使用linspace函数创建数组
arr5 = np. linspace( 0 , 100 , 20 , endpoint = False )
print ( arr5)
7.使用logspace函数创建数组
arr6 = np. logspace( 0 , 2 , 20 )
print ( arr6)
arr6. shape = 4 , 5
print ( '改变形状后的数组是:\n' , arr6)
8.使用zeros函数创建数组
arr7 = np. zeros( ( 4 , 5 ) )
print ( arr7)
9.使用eye函数创建数组
arr8 = np. eye( 3 )
print ( arr8)
10.使用diag函数创建数组
arr9 = np. diag( [ 1 , 2 , 3 , 4 ] )
print ( arr9)
11.使用ones函数创建数组
arr10 = np. ones( ( 3 , 5 ) )
print ( arr10)
12.使用random函数生成随机数
print ( '生成随机数是:\n' , np. random. random( 10 ) )
13.使用rand函数生成随机数
print ( np. random. rand( 7 , 5 ) )
14.使用randint函数生成随机数
print ( np. random. randint( 2 , 10 , size = [ 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 ) )
17.数组的切片操作
arr = np. arange( 10 )
print ( '创建的数组为:' , arr)
print ( '数组切片第5个元素为:' , arr[ 5 ] )
print ( '数组切片结果:' , arr[ 3 : 5 ] )
print ( '数组切片结果:' , arr[ : 5 ] )
print ( '数组切片结果:' , arr[ - 1 ] )
arr[ 3 : 5 ] = [ 100 , 200 ]
print ( arr)
print ( '数组切片结果:' , arr[ 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 ] )
print ( '数组切片结果:\n' , a[ 1 : 3 , 2 : 4 ] )
18.数组组合操作
a1 = np. arange( 12 ) . reshape( 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 ) )