数据分析(1)

数据分析

1.numpy

1.1 数组

1.1.1 创建数组

# newlist = [1,2,3]
# print('列表',newlist)
# print(type(newlist))
# arr1 = numpy.array(newlist)
# print('数组',arr1)
# print(type(arr1))

1.1.2 数组的组成

1.1.2.1 维度的个数

print('维度的个数',arr1.ndim)

1.1.2.2 维度的大小

print('维度的大小',arr1.shape)

1.1.2.3 数据类型

print('数据类型',arr1.dtype)

1.1.3 数组的随机抽样创建

arr1 = numpy.random.rand(3,4)
注意:
rand如果不指定任何参数,返回的是一个浮点数(小数),指定参数之后,其实指定的就是数组的大小

arr1 = numpy.random.uniform(size=3)
arr2 = numpy.random.uniform(size=(3,4))
arr3 = numpy.random.uniform(5,10,size=(3,4))
注意:
uniform如果不指定参数,默认的数据区间为0-1,返回的是一个浮点数

arr1 = numpy.random.randint(-1,20,(4,4))
注意:
randint返回的是整数,可以指定负数范围

1.1.4 数组的序列创建

arr1 = numpy.array()

numpy.zeros
全为0的数组

numpy.ones
全为1的数组

numpy.arange
创建的是一维数组

arr1.reshape()
对原有数组进行重组,将一维数组转变为多维数组,但是数据的数量要对应

1.2 索引与切片

1.2.1 一维数组

arr1 = np.arange(10)
arr1[0]
arr1[0:2]
#一维数组与列表类似,数组[起始位置:结束位置:步长]

1.2.2 多维数组

arr2 = np.arange(12).reshape(3,4)
arr2[0][2]
arr2[0,2]
#数组中间以逗号为分隔,数组[行索引,列索引]

1.2.3 取连续多列

arr2[:,1:3]

array([[ 1,  2],
       [ 5,  6],
       [ 9, 10]])

1.2.4 取连续多行

arr2[0:2]

array([[0, 1, 2, 3],
       [4, 5, 6, 7]])

1.2.5 取不连续多行

#取1,3行
arr2[[0,2],:]

array([[ 0,  1,  2,  3],
       [ 8,  9, 10, 11]])

1.2.6 取不连续多列

#取1,3,4
arr2[:,[0,2,3]]

array([[ 0,  2,  3],
       [ 4,  6,  7],
       [ 8, 10, 11]])

1.2.7 条件筛选

#条件筛选
arr2>5
array([[False, False, False, False],
       [False, False,  True,  True],
       [ True,  True,  True,  True]])


arr2[arr2>5]
array([ 6,  7,  8,  9, 10, 11])

#取出当前数组中所有大于5的偶数
arr2>5
array([[False, False, False, False],
       [False, False,  True,  True],
       [ True,  True,  True,  True]])

arr2%2==0
array([[ True, False,  True, False],
       [ True, False,  True, False],
       [ True, False,  True, False]])
       
arr2[(arr2>5) & (arr2%2==0)]
array([ 6,  8, 10])

1.3 元素计算函数

1.3.1 一元运算符

np.ceil() 参数可以是数组也可以是数字,向上取整

np.floor() 参数可以是数组也可以是数字,向下取整

np.rint() 四舍五入

np.abs 绝对值

np.square 平方

np.modf 将整数部分和整数部分分离作为单独的数组返回,返回形式是元组

np.isnan 判断是否有空值

1.3.2 二元运算符

add 数组相加,元素可以是数字或者数组,但是数组在相加的过程中,注意必须对应

subtract 数组相减,元素可以是数字或者数组,但是数组在相加的过程中,注意必须对应

multiply 元素相乘

divide 元素相除

floor_divide 元素相除取整数商,抛去余数

mod 取余

power 元素求次方

1.3.3 三元运算符

# where(条件,返回值1,返回值2)  如果满足条件,返回返回值1,否则返回返回值2 

#创建浮点型数组,找到四舍五入后大于20或者小于15的数字,满足则返回0,否则返回正常值
arr5 = np.random.uniform(10,25,size=(3,4))

arr5
array([[20.49391706, 22.51440077, 18.00017271, 12.60778079],
       [22.16917256, 22.04108387, 21.60469827, 17.1202335 ],
       [19.68909432, 24.12315481, 15.2338755 , 20.79586799]])

np.where((np.rint(arr5)>20)|(np.rint(arr5)<15),0,arr5)
array([[20.49391706,  0.        , 18.00017271,  0.        ],
       [ 0.        ,  0.        ,  0.        , 17.1202335 ],
       [19.68909432,  0.        , 15.2338755 ,  0.        ]])
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页