Python数据分析笔记 2

Python数据分析笔记 2


print("hello")
hello
import numpy as np
# ndarray n维数组变量
arr1 = np.array([1,2,3])
type(arr1)
numpy.ndarray
# 元素数据类型与转换
np.array(range(1,4)).dtype
np.array(range(1,4)).astype('float') #将元素的类型转换为浮点型
array([1., 2., 3.])
"""
#####形状与行列##############
我们可以使用shape来查看数组的形状,即几行几列
同样,我们也能够使用reshape,对形状重塑
"""
ar = np.array(range(0,12))
ar
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
ar.shape
(12,)
new_ar = ar.reshape(3,4) #将数组重塑为3行4列
new_ar
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
# 行与列
arr3 = np.arange(0,12).reshape(3,4)
arr3
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
arr3.sum(axis = 0) #行方向求和,自上而下
array([12, 15, 18, 21])
arr3.sum(axis = 1) #列方向求和,从左往右
array([ 6, 22, 38])
# 数组运算
# 形状相同的数组运算
arr = np.arange(0,12).reshape(3,4)
arr
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
arr + arr
array([[ 0,  2,  4,  6],
       [ 8, 10, 12, 14],
       [16, 18, 20, 22]])
# 对于不同的形状的运算,两者形状必须为(m,n)&(1,n)或(m,n)&(m,1) 
arr2 = np.arange(0,3).reshape(3,1) #arr2形状为 (3,1)
arr2 + arr #arr形状为(3,4)

array([[ 0,  1,  2,  3],
       [ 5,  6,  7,  8],
       [10, 11, 12, 13]])
arr3 = np.arange(0,4).reshape(1,4) #arr2形状为 (1,4)
arr3 + arr #arr形状为(3,4)
array([[ 0,  2,  4,  6],
       [ 4,  6,  8, 10],
       [ 8, 10, 12, 14]])
#############索引与切片############
# 利用索引对数组进行切片
arr = np.array([5,5,1,0,1])
arr[::]
array([5, 5, 1, 0, 1])
arr[0:-1]
array([5, 5, 1, 0])
arr[0:-2]
array([5, 5, 1])
arr[0:1]
array([5])
arr[2:4]   # 和列表类似,最后一个元素不选中  arr[a:b] ---> a <= x < b
array([1, 0])
#### 利用列表进行索引,可以理解为,有目的性的选取多行 #############
arr = np.empty((4, 4)) #创建一个4X4的空列表
for i in range(4):
    arr[i] = (i+1)**2 #分别给每行赋一样的值
arr
array([[ 1.,  1.,  1.,  1.],
       [ 4.,  4.,  4.,  4.],
       [ 9.,  9.,  9.,  9.],
       [16., 16., 16., 16.]])
arr[[2, 3, 0]] #选取索引 2 3 0对应的行
array([[ 9.,  9.,  9.,  9.],
       [16., 16., 16., 16.],
       [ 1.,  1.,  1.,  1.]])
arr[[2, 3, 0]][[0, 2, 1]] #选取索引 0 2 3对应的行,再选取索引0 2 1对应的行
array([[ 9.,  9.,  9.,  9.],
       [ 1.,  1.,  1.,  1.],
       [16., 16., 16., 16.]])
########################### 基础统计方法 ##########################
arr = np.arange(0,12).reshape(3,4)#生成一个3X4的二维数组
arr
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
print("sum={},mean={},mean_r={},mean_c={}".format(arr.sum(),arr.mean(),arr.mean(axis=0),arr.mean(axis=1))) 
# axis = 0 竖向元素相加  axis =1 横向元素相加
sum=66,mean=5.5,mean_r=[4. 5. 6. 7.],mean_c=[1.5 5.5 9.5]
# 排序
arr = np.random.randn(6) #随机生成一个一维数组
arr
array([ 0.17342069, -1.95010593, -0.3540656 , -0.67835231, -0.5646235 ,
        0.22358578])
arr.sort()
arr
array([-1.95010593, -0.67835231, -0.5646235 , -0.3540656 ,  0.17342069,
        0.22358578])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值