numpy部分常用函数
来源:互联网 发布:centos7编译安装mysql 编辑:程序博客网 时间:2024/05/21 17:29
reshape()//转化数组维度
import numpy as npprint("将一维数组转换为二维数组")arr = np.arange(8)print(arr.reshape((4, 2)))print(arr.reshape((4, 2)).reshape((2, 4)))[[0 1] [2 3] [4 5] [6 7]][[0 1 2 3] [4 5 6 7]]
unique()//去重并排序
print('用unique函数去重')names = np.array(['Bob', 'Joe', 'Will', 'Ani','Bob', 'Will', 'Joe', 'Joe'])print(sorted(set(names))) # 传统Python做法print(np.unique(names))ints = np.array([3, 3, 3, 2, 2, 1, 1, 4, 4])print(np.unique(ints))用unique函数去重['Ani', 'Bob', 'Joe', 'Will']#字母按照 abc顺序['Ani' 'Bob' 'Joe' 'Will'][1 2 3 4]
inld()
print('查找数组元素是否在另一数组')values = np.array([6, 0, 0, 3, 2, 5, 6])print(np.in1d(values, [2, 3, 6]))[ True False False True True False True]
sort()//排序
import numpy as npimport numpy.random as np_randomprint('二维数组排序')arr = np_random.randn(5, 3)print(arr)arr.sort(1) # 对每一行元素做排序print(arr)print('找位置在5%的数字')large_arr = np_random.randn(1000)large_arr.sort()print(large_arr[int(0.05 * len(large_arr))])
sum()//求和
print('对正数求和')arr = np_random.randn(100)print((arr > 0).sum())对正数求和48any()与all()
print('对数组逻辑操作')bools = np.array([False, False, True, False])print(bools.any()) # 有一个为True则返回Trueprint(bools.all()) # 有一个为False则返回False对数组逻辑操作TrueFalsemean()//求平均print('求和,求平均')arr = np.random.randn(5, 4)print(arr)print(arr.mean())print(arr.sum())print(arr.mean(axis = 1)) # 对每一行的元素求平均 为0时 对每一列求平均print(arr.sum(0)) # 对每一列元素求和,axis可以省略。cumsum()与cumpord()print('cumsum和cumprod函数演示')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]]meshgrid()points = np.arange(-5, 5, 0.01) # 生成100个点xs, ys = np.meshgrid(points, points) # xs, ys互为转置矩阵zip()print('通过真值表选择元素')x_arr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])y_arr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])cond = np.array([True, False, True, True, False])result = [(x if c else y) for x, y, c in zip(x_arr, y_arr, cond)] # 通过列表推到实现print(result)[1.1000000000000001, 2.2000000000000002, 1.3, 1.3999999999999999, 2.5]concatenate()//连接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)) # 按列连接[[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]][[ 1 2 3 7 8 9] [ 4 5 6 10 11 12]]
vstack()垂直堆叠与hstack()水平堆叠print('垂直stack与水平stack')print(np.vstack((arr1, arr2)))# 垂直堆叠print(np.hstack((arr1, arr2)))# 水平堆叠垂直stack与水平stack[[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]][[ 1 2 3 7 8 9] [ 4 5 6 10 11 12]]
split //拆分print('拆分数组')arr = np_random.randn(5, 5)print(arr)print('水平拆分')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)拆分数组[[ 1.61783002 -1.1345574 0.63230098 -1.56998762 -0.26738668] [-0.69902169 -0.42135528 0.54961425 -1.17912065 -0.56412522] [ 0.05401824 0.94835151 2.09323315 -0.27721887 -0.18710358] [ 0.73171842 -0.34138314 -1.68563918 -0.20844484 0.69971286] [ 0.82243311 0.05344138 -1.03953588 1.60052233 -0.75851984]]水平拆分first[[ 1.61783002 -1.1345574 0.63230098 -1.56998762 -0.26738668]]second[[-0.69902169 -0.42135528 0.54961425 -1.17912065 -0.56412522] [ 0.05401824 0.94835151 2.09323315 -0.27721887 -0.18710358]]third[[ 0.73171842 -0.34138314 -1.68563918 -0.20844484 0.69971286] [ 0.82243311 0.05344138 -1.03953588 1.60052233 -0.75851984]]垂直拆分first[[ 1.61783002] [-0.69902169] [ 0.05401824] [ 0.73171842] [ 0.82243311]]second[[-1.1345574 0.63230098] [-0.42135528 0.54961425] [ 0.94835151 2.09323315] [-0.34138314 -1.68563918] [ 0.05344138 -1.03953588]]third[[-1.56998762 -0.26738668] [-1.17912065 -0.56412522] [-0.27721887 -0.18710358] [-0.20844484 0.69971286] [ 1.60052233 -0.75851984]]
take()与put()arr = np.arange(10) * 100inds = [7, 1, 2, 6]print('使用take')print(arr.take(inds))print('使用put更新内容')arr.put(inds,50)print(arr)arr.put(inds, [70, 10, 20, 60])print(arr)print('take,指定轴')arr = np_random.randn(2, 4)inds = [2, 0, 2, 1]print(arr)print(arr.take(inds, axis = 1)) # 按列take[700 100 200 600]使用take[700 100 200 600]使用put更新内容[ 0 50 50 300 400 500 50 50 800 900][ 0 10 20 300 400 500 60 70 800 900]take,指定轴[[-0.41421153 1.87094071 -1.38985914 -0.25246155] [ 1.16803861 0.59288343 1.0799239 0.42735701]][[-1.38985914 -0.41421153 -1.38985914 1.87094071] [ 1.0799239 1.16803861 1.0799239 0.59288343]]
阅读全文
0 0
- numpy部分常用函数
- numpy-部分numpy函数
- Numpy模块部分函数
- Numpy常用函数
- Numpy:常用函数
- numpy常用函数
- numpy常用函数
- numpy常用函数笔记
- 熟悉 NumPy 常用函数
- 掌握 NumPy 常用函数
- numpy常用函数总结
- numpy中的常用函数
- Numpy常用函数
- numpy 常用函数小计
- pandas numpy常用函数
- NumPy基础--常用函数
- 常用numpy函数
- numpy常用语法+函数
- factorial c代码实现
- 我的学习记录22
- 贪心算法 找钱问题
- UVa 1339 Ancient
- leetcode14. Longest Common Prefix
- numpy部分常用函数
- Matlab:从无到有——LeNet(1)
- ZOJ 3987 Numbers(枚举)
- PADS Router无法自动扇出
- java双引号中嵌入变量
- 自己写的自动化部署小工具 : Webhooks
- spring boot框架学习5-spring boot的web开发(1)
- 作业
- Android学习-通知的使用详解