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]