NumPy是一个开源的Python科学计算库,用于快速处理任意维度的数组。

创建NumPy数组

#创建一维数组

list1 = [1,2,3,4]
array1= np.array(list1)#用python列表创建np数组
array1= np.array(range(10))#用python内置range函数创建np数组
array1= np.arange(0,10,2)#numpy方法 .arange创建np数组 #创建多维数组
list2 = [[1,2],[3,4]]
array2 = np.array(list2)
array2 = np.arange(1,5).reshape(2,2)

NumPy数组常用属性

print(array2.ndim)#查看数组维度 numpy数组的ndim属性
print(array2.shape)#查看数组形状
print(array2.size)#查看数组中数据个数

多维数组转化为一维数组

array1 = array2.flatten(order = 'C') #默认情况下‘C’以行为主展开 'F'以列为主展开

NumPy数组转换为list列表tolist()方法

f = np.array([[1,2,3,4],[5,6,7,8]])
list_f = f.tolist() #np中tolist()方法将数组变为列表
print(list_f)

NumPy数组的计算

#数组与数之间的计算,由于NumPy的广播机制,加减乘除的值计算到数组所有元素

#NumPy数组之间的计算,当数组维度相同时

t1 = np.arange(24).reshape((6,4))
t2 = np.arange(100,124).reshape((6,4))
print(t1 + t2)
print(t1 * t2)
output:
[[100 102 104 106]
[108 110 112 114]
[116 118 120 122]
[124 126 128 130]
[132 134 136 138]
[140 142 144 146]]
[[ 0 101 204 309]
[ 416 525 636 749]
[ 864 981 1100 1221]
[1344 1469 1596 1725]
[1856 1989 2124 2261]
[2400 2541 2684 2829]]

NumPy数组的索引及切片

#一维数组,类似list切片
a = np.arange(10)
print(a[0])
print(a[0:10])
print(a[0:6:2])
output:
0
[0 1 2 3 4 5 6 7 8 9]
[0 2 4]
 #多维数组
b = np.arange(24).reshape(4,6)
print(b[0])
print(b[0,:])
print(b[0:2,:])#取连续行
print(b[[0,2,3],:])#取不连续行

NumPy数组的添加

a = np.array([[1,2,3],[4,5,6]])
#通过append方法添加
b = np.append(a,[[7,8,9]],axis = 0)#axis = 0,按行添加
c = np.append(a,[[4,5],[7,8]],axis =1)#axis = 1,按列添加
#通过insert方法插入
#np.insert 方法必要参数 (数组,索引,插入的数据)
print(np.insert(a,1,[[0,0]],axis = 1))
print(np.insert(a,1,[[7,8,9]],axis = 0)) output:
[[1 0 2 3]
[4 0 5 6]]
[[1 2 3]
[7 8 9]
[4 5 6]]

NumPy数组常用计算方法

#获取所有数据的最大值

result = np.max(array)

#获取某个轴上的最大值

result = np.max(array,axis = 0)

#获取某个轴上的最小值

result = np.min(array,axis = 0)

#获取某个轴上的平均值

result = np.mean(array,axis = 0)

#获取某个轴上的标准差

result = np.std(array,axis = 0)

NumPy数组的转置

array = array.transpose()#NumPy中 .transpose方法实现对数组的转置

array = array.T

Tips:NumPy和Pandas要在实际案例中熟悉,不要强记。官方网站https://www.numpy.org.cn/user/

2020-04-01 17:20 For Leslie Never Forgotten

Python库-NumPy的更多相关文章

  1. CentOS7 安装python库(numpy、scipy、matplotlib、scikit-learn、tensorflow)

    0.1准备工作 安装好CentOS7,配置好网络,确保网络畅通. 0.2root授权 首先:当前用户为kaid # vim /etc/sudoers 在root ALL=(ALL) ALL之后添加: ...

  2. python 库 Numpy 中如何求取向量范数 np.linalg.norm(求范数)(向量的第二范数为传统意义上的向量长度),(如何求取向量的单位向量)

    求取向量二范数,并求取单位向量(行向量计算) import numpy as np x=np.array([[0, 3, 4], [2, 6, 4]]) y=np.linalg.norm(x, axi ...

  3. python库numpy的reshape的终极解释

    a = np.arange(2*4*4) b = a.reshape(1,4,4,2)           #应该这样按反序来理解:最后一个2是一个只有2个元素的向量,最后的4,2代表4×2的矩阵,最 ...

  4. Python数据分析Python库介绍(1)

    一直想写点Python的笔记了,今天就闲着无聊随便抄点,(*^__^*) 嘻嘻…… ---------------------------------------------------------- ...

  5. Python 的 Numpy 库

    Numpy: # NumPy库介绍 # NumPy的安装 #  NumPy系统是Python的一种开源的数值计算扩展 #  可用来存储和处理大型矩阵. #  因为不是Python的内嵌模块,因此 ...

  6. python之numpy矩阵库的使用(续)

    本文是对我原先写的python常用序列list.tuples及矩阵库numpy的使用中的numpy矩阵库的使用的补充.结合我个人现在对线性代数的复习进度来不断更博. Section 1:行列式的计算 ...

  7. python常用序列list、tuples及矩阵库numpy的使用

    近期开始学习python机器学习的相关知识,为了使后续学习中避免编程遇到的基础问题,对python数组以及矩阵库numpy的使用进行总结,以此来加深和巩固自己以前所学的知识. Section One: ...

  8. Python 机器学习库 NumPy 教程

    0 Numpy简单介绍 Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过numpy ...

  9. 浅谈python的第三方库——numpy(终)

    本文作为numpy系列的总结篇,继续介绍numpy中常见的使用小贴士 1 手动转换矩阵规格 转换矩阵规格,就是在保持原矩阵的元素数量和内容不变的情况下,改变原矩阵的行列数目.比如,在得到一个5x4的矩 ...

随机推荐

  1. MySQL 【教程二】

    MySQL 创建数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: # CREATE TABLE table_name (c ...

  2. js 验证输入框是否为空

    很多时候,菜鸟在对输入框是否输入值进行验证时,总会把输入“空字符串”这一状况给忽略掉.嗯,我就这样,所以记下,以后回忆下还是不错滴 <input type="text" id ...

  3. Mysql 查询天、周,月,季度、年的数据

    Mysql 查询天.周,月,季度.年的数据 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 ...

  4. CentOS7系统服务管理systemctl

    目录 一.systemctl介绍 二.systemctl常用命令 1.启动服务 2.停止服务 3.重启服务 4.查看服务是否已启动 5.查看服务的状态 6.启用开机自启动服务 7.停用开机自启动服务 ...

  5. NeurIPS 2019 Spotlight | Cascade RPN,结构的艺术带来极致的提升

    论文提出Cascade RPN算法来提升RPN模块的性能,该算法重点解决了RPN在迭代时anchor和feature不对齐的问题,论文创新点足,效果也很惊艳,相对于原始的RPN提升13.4%AR 论文 ...

  6. [JVM教程与调优] JVM都有哪些参数类型?

    JDK本身是提供了一些监控工具,有一些是命令行,也有图形界面.本次介绍命令行如何进行监控. 命令行是非常重要的,因为在我们生产环境基本上是没有图形界面的,完全是通过命令行. 主要内容: JVM的参数类 ...

  7. 逻辑回归和sigmoid函数分类

    逻辑回归和sigmoid函数分类:容易欠拟合,分类精度不高,计算代价小,易于理解和实现 sigmoid函数与阶跃函数的区别在于:阶跃函数从0到1的跳跃在sigmoid函数中是一个逐渐的变化,而不是突变 ...

  8. 玩转控件:对Dev中GridControl控件的封装和扩展

    又是一年清明节至,细雨绵绵犹如泪光,树叶随风摆动.... 转眼间,一年又过去了三分之一,疫情的严峻让不少企业就跟清明时节的树叶一样,摇摇欲坠.裁员的裁员,降薪的降薪,996的996~~说起来都是泪,以 ...

  9. 深度学习vs机器学习 | 这些本质区别你知道多少?

    目录: 数据相关性 硬件依赖性 特征工程 解决问题方法 执行时间 可解释性 一.数据相关性 深度学习与传统机器学习最重要的区别是,随着数据量的增加,其性能也随之提高.当数据很小的时候,深度学习算法并不 ...

  10. BZOJ 4472 salesman 题解

    题目 某售货员小T要到若干城镇去推销商品,由于该地区是交通不便的山区,任意两个城镇之间都只有唯一的可能经过其它城镇的路线.小T可以准确地估计出在每个城镇停留的净收益.这些净收益可能是负数,即推销商品的 ...