numpy函数的使用
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
数据分析三剑客:Numpy,Pandas,Matplotlib
一、创建ndarray
1.使用np.array()创建
- 一维数组创建
import numpy as np np.array([1,2,3])
- 二维数组的创建
np.array([[1,2,3],[4,5,6]])
注意:
- numpy默认ndarray的所有元素的类型是相同的
- 如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int
- 使用matplotlib.pyplot获取一个numpy数组,数据来源于一张图片
import matplotlib.pylab as plt # 读取图片二进制数据
img_arr = plt.imread('img_dir') # 将图片展示
plt.imshow(img_arr) # 将图片所有数据减少
plt.imshow(img_arr - 100) # 操作该numpy数据,该操作会同步到图片中
2.使用np的routines函数创建
- np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) 等差数列
np.linspace(0,100,num=20) out: array([ 0. , 5.26315789, 10.52631579, 15.78947368,
21.05263158, 26.31578947, 31.57894737, 36.84210526,
42.10526316, 47.36842105, 52.63157895, 57.89473684,
63.15789474, 68.42105263, 73.68421053, 78.94736842,
84.21052632, 89.47368421, 94.73684211, 100. ])
- np.arange([start, ]stop, [step, ]dtype=None)
np.arange(0,100,2) out: array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32,
34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66,
68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98])
- np.random.randint(low, high=None, size=None, dtype='l')
#固定随机性
#随机因子:系统的时间
np.random.seed(100)
arr = np.random.randint(0,100,size=(4,5))
- np.random.random(size=None)
- 生成0到1的随机数,左闭右开 np.random.seed(3)
np.random.random(size=(4,5)) out: array([[0.56229626, 0.00581719, 0.30742321, 0.95018431, 0.12665424],
[0.07898787, 0.31135313, 0.63238359, 0.69935892, 0.64196495],
[0.92002378, 0.29887635, 0.56874553, 0.17862432, 0.5325737 ],
[0.64669147, 0.14206538, 0.58138896, 0.47918994, 0.38641911]])
二、ndarray的属性
- 4个必记参数: ndim:维度 shape:形状(各维度的长度) size:总长度 dtype:元素类型
arr.shape
arr.size
img_arr.size
arr.dtype
三、ndarray的基本操作
1.索引
- 一维与列表完全一致 多维时同理
print(arr) out: array([[ 8, 24, 67, 87, 79],
[48, 10, 94, 52, 98],
[53, 66, 98, 14, 34],
[24, 15, 60, 58, 16]])
print(arr[1])
out: array([48, 10, 94, 52, 98])
2.切片
- 一维与列表完全一致 多维时同理
#获取二维数组前两行
arr[0:2] #获取二维数组前两列
arr[:,0:2] #arr[hang,lie] #获取二维数组前两行和前两列数据
arr[0:2,0:2] #将数组的行倒序
arr[::-1] #列倒序
arr[:,::-1] #全部倒序
arr[::-1,::-1]
3.变形
- 使用arr.reshape()函数,注意参数是一个tuple!
- 基本使用:
- 将一维数组变形成多维数组
import numpy as np arr_1 = np.random.randint(0, 100, size=(20,)) arr_1.reshape((2, 10))
# 把其中一维的数据设为-1,会自动计算
arr_1.reshape((5, -1))
2. 将多维数组变形成一维数组
arr_1 = arr.reshape(20,)
4.级联
- np.concatenate()
- 一维,二维,多维数组的级联,实际操作中级联多为二维数组
# 按照行来进行级联
np.concatenate((arr,arr,arr),axis=1) # 按照列来进行级联
np.concatenate((arr,arr,arr),axis=0)
级联需要注意的点:
- 级联的参数是列表:一定要加中括号或小括号
- 维度必须相同
- 形状相符:在维度保持一致的前提下,如果进行横向(axis=1)级联,必须保证进行级联的数组行数保持一致。如果进行纵向(axis=0)级联,必须保证进行级联的数组列数保持一致。
- 可通过axis参数改变级联的方向
四、ndarray的聚合操作
1. 求和np.sum
arr.sum(axis=1)
2. 最大最小值:np.max/ np.min
arr.max() arr.min()
3.平均值:np.mean()
其他聚合操作
Function Name NaN-safe Version Description
np.sum np.nansum Compute sum of elements
np.prod np.nanprod Compute product of elements
np.mean np.nanmean Compute mean of elements
np.std np.nanstd Compute standard deviation
np.var np.nanvar Compute variance
np.min np.nanmin Find minimum value
np.max np.nanmax Find maximum value
np.argmin np.nanargmin Find index of minimum value
np.argmax np.nanargmax Find index of maximum value
np.median np.nanmedian Compute median of elements
np.percentile np.nanpercentile Compute rank-based statistics of elements
np.any N/A Evaluate whether any elements are true
np.all N/A Evaluate whether all elements are true
np.power 幂运算
六、ndarray的排序
1. 快速排序
np.sort()与ndarray.sort()都可以,但有区别:
- np.sort()不改变输入
- ndarray.sort()本地处理,不占用空间,但改变输入
np.sort(arr,axis=0)
numpy函数的使用的更多相关文章
- Numpy函数库基础
利用Numpy函数库构造4*4随机数组,然后将数组转化为矩阵,然后矩阵与其逆矩阵相乘,计算机处理的误差 from numpy import * random.rand(4,4) print(rando ...
- [转]Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()
Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate() 觉得有用的话,欢迎一起讨论相互学习~Follow Me ...
- Numpy 函数总结 (不断更新)
本篇主要收集一些平时见到的 Numpy 函数. numpy.random.seed & numpy.random.RandomState np.random.seed() 和 np.rando ...
- numpy函数库中一些经常使用函数的记录
##numpy函数库中一些经常使用函数的记录 近期才開始接触python,python中为我们提供了大量的库,不太熟悉.因此在<机器学习实战>的学习中,对遇到的一些函数的使用方法进行记录. ...
- numpy函数库中一些常用函数的记录
##numpy函数库中一些常用函数的记录 最近才开始接触Python,python中为我们提供了大量的库,不太熟悉,因此在<机器学习实战>的学习中,对遇到的一些函数的用法进行记录. (1) ...
- numpy函数笔记(持续更新)
numpy函数笔记 np.isin用法 np.isin(a,b) 用于判定a中的元素在b中是否出现过,如果出现过返回True,否则返回False,最终结果为一个形状和a一模一样的数组.(注意:这里的a ...
- numpy 函数一:linspace
接触 numpy 遇到的第一个函数可能就是 linspace 函数,但是对于我们这种没有学过 matlab 的人来说,根本不知道这是什么. 所以只能自己查资料. 词典显示: 线性等分向量 线性平分矢量 ...
- numpy函数白板
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False) start 起始位置 stop 终止位置 num 个数 endpoi ...
- numpy函数fromfunction分析
从函数规则创建数组是非常方便的方法.在numpy中我们常用fromfunction函数来实现这个功能. 在numpy的官网有这么一个例子. >>> def f(x,y): ... r ...
- Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()
感觉numpy.hstack()和numpy.column_stack()函数略有相似,numpy.vstack()与numpy.row_stack()函数也是挺像的. stackoverflow上也 ...
随机推荐
- httprunner(11)运行测试报告
前言 受益于pytest的集成,HttpRunner v3.x可以使用pytest所有插件,包括pytest-html和allure-pytest,也可以实现这2种方式的报告 内置html报告 pyt ...
- Leetcode 30 串联所有单词的子串 滑动窗口+map
见注释.滑动窗口还是好用. class Solution { public: vector<int> findSubstring(string s, vector<string> ...
- hautoj 1268 小天使改名
1268: 小天使改名 时间限制: 2 秒 内存限制: 128 MB提交: 437 解决: 123提交 状态 题目描述 小天使的b站帐号被大家发现啦.于是小天使决定改名,将他原有ID中的两个不同位 ...
- C++的memset
1. 需要的头文件 C中为<memory.h> 或 <string.h> C++中为<cstring> void * memset ( void * ptr, in ...
- liunx命令二
声明:以下资料全部摘自实验楼 常用快捷键 按键 作用 Table 补全命令 Ctrl+c 强制结束 Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行 Ctrl ...
- git操作是出现Username for 'https://github.com':的验证问题
Username for 'https://github.com': 输入的是github上的邮箱账号, 而不是github中设置的username, 这是个巨坑!!!Password for 'ht ...
- node.js 怎么扩大默认的分配的最大运行内存
node.js 怎么扩大默认的分配的最大运行内存 $ node --max-old-space-size=4096 app.js $ NODE_OPTIONS=--max-old-space-size ...
- vue & less bug
vue & less bug bezierEasingMixin(); ^ Inline JavaScript is not enabled. Is it set in your option ...
- 使用 js 实现十大排序算法: 希尔排序
使用 js 实现十大排序算法: 希尔排序 希尔排序 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
- How to enable HTTPS for local development in macOS using Chrome
How to enable HTTPS for local development in macOS using Chrome HTTPS, macOS, Chrome local HTTPS htt ...