Numpy学习三:数组运算
1、转置
#reshape(shape)函数改变数组形状,shape是一个元组,表示数组的形状
创建一个包含15个元素的一维数组,通过reshape函数调整数组形状为3行5列的二维数组
arr = np.arange(15).reshape((3,5))
print(arr)
结果:[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
#转置,数组转置可以使用transpose方法或者T属性,转置返回的是源数组的视图,不会进行任何复制操作
#将3行5列的二维数组arr转置为5行3列的二维数组
arr.transpose()
结果:array([[ 0, 5, 10],
[ 1, 6, 11],
[ 2, 7, 12],
[ 3, 8, 13],
[ 4, 9, 14]])
#使用T属性实现转置
arr.T
结果:array([[ 0, 5, 10],
[ 1, 6, 11],
[ 2, 7, 12],
[ 3, 8, 13],
[ 4, 9, 14]])
2、算数运算
#注意:两个数组做算数法要求两个数组的结构要相同
#数组加法,两个数组对应位置的元素相加
arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.ones((2,3)) #2行3列的全1数组
arr1 + arr2 #相当于给数组arr1中的每个元素加1
结果:array([[ 2., 3., 4.],
[ 5., 6., 7.]])
#数组减法,两个数组对应位置的元素相减
arr1 - arr2
结果:array([[ 0., 1., 2.],
[ 3., 4., 5.]])
#数组乘法,两个数组对应位置的元素相乘
arr3 = np.array([[2,2,2],[2,2,2]])
arr1 * arr3
结果:array([[ 2, 4, 6],
[ 8, 10, 12]])
#使用tile函数构造数组,上一个arr3构造具有相同元素的数组非常麻烦,使用tile函数非常简洁
#第一个参数表示需要复制的数组,第二个参数是对应的轴方向上复制的次数
#第2个参数(2,3)表示在第0轴方向复制2次,第1轴方向复制3次,这样就构成了一个2行3列的二维数组
arr4 = np.tile([2],(2,3))
print(arr4)
结果:[[2 2 2]
[2 2 2]]
#数组除法,两个数组对应位置的元素相除
arr1 / arr4
结果:array([[ 0.5, 1. , 1.5],
[ 2. , 2.5, 3. ]])
3、数组与标量算术运算
#对数组中每个元素求平方
arr1 ** 2
结果:array([[ 1, 4, 9],
[16, 25, 36]], dtype=int32)
#数组arr1中的每个元素加10
arr1 + 10
结果:array([[11, 12, 13],
[14, 15, 16]])
Numpy学习三:数组运算的更多相关文章
- Numpy学习之——数组创建
Numpy学习之--数组创建 过程展示 import numpy as np a = np.array([2,3,9]) a array([2, 3, 9]) a.dtype dtype('int32 ...
- Scala学习(三)----数组相关操作
数组相关操作 摘要: 本篇主要学习如何在Scala中操作数组.Java和C++程序员通常会选用数组或近似的结构(比如数组列表或向量)来收集一组元素.在Scala中,我们的选择更多,不过现在我们先假定不 ...
- JavaScript基础学习(三)—数组
一.数组简介 JavaScript数组的每一项都可以保存任何类型的数据,也就是说数组的第一个位置保存字符串,第二个位置可以保存数值,第三个位置可以保存对象,而且数组的大小是可以动态调整的,即可 ...
- Scala学习三——数组相关操作
一.若长度固定则使用Array,若长度可能有变化则使用ArrayBuffer 固定长度数组: 如val nums=new Array[Int](10) //10个整型数组,所有元素初始化为0; val ...
- 3.3Python数据处理篇之Numpy系列(三)---数组的索引与切片
目录 (一)数组的索引与切片 1.说明: 2.实例: (二)多维数组的索引与切片 1.说明: 2.实例: 目录: 1.一维数组的索引与切片 2.多维数组的索引与切片 (一)数组的索引与切片 1.说明: ...
- numpy学习(三)
练习篇(Part 3) 31. 略 32. Is the following expressions true? (★☆☆) np.sqrt(-1) == np.emath.sqrt(-1) prin ...
- MATLAB—数组运算及数组化编程
文章目录 前言 一.数组的结构和创建 1.数组及其结构 2.行数组的创建 3.对数组构造的操作 二.数组元素编址及寻访 1.数组元素的编址 2.二维数组元素的寻访 三.数组运算 非数的问题 前言 编程 ...
- 【学习笔记】 第04章 NumPy基础:数组和矢量计算
前言 正式开始学习Numpy,参考用书是<用Python进行数据清洗>,计划本周五之前把本书读完,关键代码全部实现一遍 NumPy基础:数组和矢量计算 按照书中所示,要搞明白具体的性能差距 ...
- numpy学习笔记(三)
(1)numpy的位操作 序号 操作及描述 1. bitwise_and 对数组元素执行位与操作 2. bitwise_or 对数组元素执行位或操作 3. ...
随机推荐
- MathExam Lv2
一个大气又可爱的算术题----211606360 丁培晖 211606343 杨宇潇 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) ...
- yarn查询/cluster/nodes均返回localhost
背景: 1.已禁用ipv6. 2.所有节点的/etc/hosts正确配置,任务在ResourceManager提交. 3.yarn-site.xml中指定了 yarn.resourcemanager. ...
- cmd下的一些小技巧
切换盘符:[盘符]+: tips1: 在盘符A执行一条命令后的同时切换到盘符B:A:\>dir && B:(此处只能用&&或者&) tips2: 在盘符A ...
- oracle xe在centos下的安装(更)
更:重新弄了一下,就两个地方要注意,一是hosts文件的主机域名解析,而是profile文件配置,需要从oracle文件里复制过去在profile最下面添加就行了 注:下面方法反正我是失败了,好像xe ...
- 别人的Linux私房菜(13)学习Shell脚本
CentOS6.x以前版本的系统服务启动接口在/etc/init.d/目录下,存放了脚本. Shell脚本因调用外部命令和bash 的一些默认工具,速度较慢,不适合处理大量运算. 执行方式有:直接命令 ...
- python中split()和split(' ')的区别
用split(" ")测试: s1 = "we are family"#中间一个空格 s2 = "we are family"#中间两个空格 ...
- 今天我给你们推荐一本书《Linux就该这么学》!!!
本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值 ...
- REdis MASTER aborted replication NOAUTH Authentication required
对于REdis集群,如果设置了requirepass,则一定要设置masterauth,否则从节点无法正常工作,查看从节点日志可以看到哪下内容:19213:S 22 Apr 2019 10:52:17 ...
- opencv2.4.13+python2.7学习笔记--OpenCV中的图像处理--图像轮廓特征和几何矩
阅读对象:对概率论中的期望有一点了解. 1.图像几何矩 1.1简述 图像的几何矩包括空间矩.中心矩和中心归一化矩.几何矩具有平移.旋转和尺度不变性,一般是用来做大粒度的区分,用来过滤显然不相关的图像. ...
- SVM探讨
目录 SVM探讨 SVM算法 硬间隔最大化的优化目标 软间隔最大化 SVM探讨 SVM算法 根据处理问题的复杂度,SVM 可由简到繁分为三种: 线性可分支持向量机:硬间隔最大化. 线性支持向量机:数据 ...