python数据分析——numpy基础(三)

1、numpy中axis的函数

'''
print('求和,求平均')
arr = np.random.randn(5, 4)
print(arr)
print(arr.mean())
print(arr.sum())
print(arr.mean(axis = 1))  # 对每一行的元素求平均
print(arr.sum(0))  # 对每一列元素求和,axis可以省略。

cumsum:
- 按列操作:a[i][j] += a[i - 1][j]
- 按行操作:a[i][j] *= a[i][j - 1]
cumprod:
- 按列操作:a[i][j] += a[i - 1][j]
- 按行操作:a[i][j] *= a[i][j - 1]
'''
print 'cunsum和cumprod函数演示' 0表示按列操作,1表示按行操作
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
print arr.cumsum(0)
print arr.cumprod(1)
结果
[[ 0  1  2]
 [ 3  5  7]
 [ 9 12 15]]
[[  0   0   0]
 [  3  12  60]
 [  6  42 336]]

2、numpy中利用sum对true进行计数
any与all对测试布尔型数组

import numpy as np
import numpy.random as np_random


arr = np_random.randn(100)
# 返回arr数组中大于0的个数
print((arr > 0).sum())

bools = np.array([False, False, True, False])
# 对any表示有个true就返回true
print(bools.any())
# all 有一个false就返回false
print(bools.all())

3、数组排序

arr = np_random.randn(8)
arr.sort()
print(arr)

arr = np_random.randn(3, 4)
arr.sort(1) # 指定轴
print(arr)

4、数据处理——去重
这里写图片描述
5、矩阵运算
这里写图片描述
这里写图片描述
6、随机数生成
这里写图片描述
这里写图片描述
7、高维数组

import numpy as np

print "将一维数组转换为二维数组"
arr = np.arange(8)
print arr.reshape((4, 2))
print arr.reshape((4, 2)).reshape((2, 4)) # 支持链式操作
print

print "维度大小自动推导"
arr = np.arange(15)
print arr.reshape((5, -1))
print

print "获取维度信息并应用"
other_arr = np.ones((3, 5))
print other_arr.shape
print arr.reshape(other_arr.shape)
print

print "高维数组拉平"
arr = np.arange(15).reshape((5, 3))
print arr.ravel()

8、数组的合并和拆分

import numpy as np
import numpy.random as np_random


print '连接两个二维数组'
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
print np.concatenate([arr1, arr2], axis = 0)  # 按行连接
print np.concatenate([arr1, arr2], axis = 1)  # 按列连接
print

# 所谓堆叠,参考叠盘子。。。连接的另一种表述
print '垂直stack与水平stack'
print np.vstack((arr1, arr2)) # 垂直堆叠
print np.hstack((arr1, arr2)) # 水平堆叠
print

print '拆分数组'
arr = np_random.randn(5, 5)
print arr
print '水平拆分'
# [1,3]表示对数组进行[0:1] [1:3] [3:]进行拆分
first, second, third = np.split(arr, [1, 3], axis = 0)
print 'first'
print first
print 'second'
print second
print 'third'
print third
print '垂直拆分'
first, second, third = np.split(arr, [1, 3], axis = 1)
print 'first'
print first
print 'second'
print second
print 'third'
print third
print

# 堆叠辅助类
arr = np.arange(6)
arr1 = arr.reshape((3, 2))
arr2 = np_random.randn(3, 2)
print 'r_用于按行堆叠'
print np.r_[arr1, arr2]
print 'c_用于按列堆叠'
print np.c_[np.r_[arr1, arr2], arr]
print '切片直接转为数组'
print np.c_[1:6, -10:-5]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值