1.算术运算符

它们只用于位置相同的元素之间,即为元素级的运算。
所得到的运算结果组成一个新的数组。
不用编写循环即可对数据执行批量运算。(矢量化)

import numpy as np

# 创建一个数组
a = np.arange(4)
print('数组a ', a) # 加上一个标量
print('加标量', a + 4) # 乘以一个标量
print('乘标量', a * 2)
数组a  [0 1 2 3]
加标量 [4 5 6 7]
乘标量 [0 2 4 6]
b = np.arange(4, 8)
print('数组b ', b) print('a + b ', a + b)
print('a - b ', a - b)
print('a * b ', a * b)
数组b  [4 5 6 7]
a + b [ 4 6 8 10]
a - b [-4 -4 -4 -4]
a * b [ 0 5 12 21]

这些运算符还使用于返回值为NumPy数组的函数。

# 数组a乘以数组b的正弦值
print(a * np.sin(b)) print('-------------------------------------------------') # 数组a乘以数组b的平方根
print(a * np.sqrt(b))
[-0.         -0.95892427 -0.558831    1.9709598 ]
-------------------------------------------------
[0. 2.23606798 4.89897949 7.93725393]

对于多维数组,这些运算符仍然是元素级的。

A = np.arange(0, 9).reshape(3,3)
print('数组A:')
print(A) B = np.ones((3, 3))
B[1][1] = 2.5
print('数组B:')
print(B) print('A*B:')
print(A*B)
数组A:
[[0 1 2]
[3 4 5]
[6 7 8]]
数组B:
[[1. 1. 1. ]
[1. 2.5 1. ]
[1. 1. 1. ]]
A*B:
[[ 0. 1. 2.]
[ 3. 10. 5.]
[ 6. 7. 8.]]

2.矩阵积(mastrix produet)

NumPy用dot()函数表示这类乘法,该运算不是元素级的。
所得到的数组中每个元素为,第一个矩阵中与该元素行号相同的元素与第二个矩阵中与该元素列号相同的元素,两两相乘后再求和
设A为m x n的矩阵,B为p x n的矩阵,则dot(A,B)为m x n的矩阵。
假设dot(A, B)得到数组C,则C中的第1行第1列的元素为 3 x 1.0 + 4 x 2.5 + 5 x 1.0 = 18.0
矩阵计算不遵循交换律。即dot(A,B)不等于dot(B,A)

C = np.dot(A, B)
# 另一种写法 C = A.dot(B)
print('dot(A,B)结果:')
print(C) C1 = np.dot(B,A)
print('dot(B,A)结果:')
print(C1)
dot(A,B)结果:
[[ 3. 4.5 3. ]
[12. 18. 12. ]
[21. 31.5 21. ]]
dot(B,A)结果:
[[ 9. 12. 15. ]
[13.5 18. 22.5]
[ 9. 12. 15. ]]

3.自增和自减运算符

运算结果不是赋给一个新数组。
当想修改数组的值而不想生成新数组时可以使用它们。

a = np.arange(4)
print('原数组', a) a += 1
print('自加1 ', a) a -= 3
print('自减3 ', a)
原数组 [0 1 2 3]
自加1 [1 2 3 4]
自减3 [-2 -1 0 1]

4.通用函数(ufunc = universal function)

它对数组中的各个元素逐一进行操作。
通用函数分别处理输入数组的每个元素,生成的结果组成一个新的输出数组。
三角函数等很多数学运算符符合通用函数的定义。

a = np.array([0, 1, 2, 3, 4])
print(np.sqrt(a)) # 计算平方根
[0.         1.         1.41421356 1.73205081 2.        ]

5.聚合函数

聚合函数是指对一组值(如数组)进行操作,返回一个单一值作为结果的函数。

a = np.array([3.3, 4.5, 1.2, 5.7, 0.3])
print('总和: ', a.sum())
print('最小值:', a.min())
print('最大值:', a.max())
print('平均值:', a.mean())
print('标准差:', a.std())
总和:   15.0
最小值: 0.3
最大值: 5.7
平均值: 3.0
标准差: 2.0079840636817816

NumPy学习_02 ndarray基本操作的更多相关文章

  1. NumPy学习_00 ndarray的创建

    1.使用array()函数创建数组 参数可以为:单层或嵌套列表:嵌套元组或元组列表:元组或列表组成的列表 # 导入numpy库 import numpy as np # 由单层列表创建 a = np. ...

  2. NumPy学习_01 ndarray相关概念

    1.NumPy库 NumPy = Numerical Python 是高性能科学计算和数据分析的基础库. pandas库充分借鉴了NumPy的相关概念,先行掌握NumPy库的用法,才能把pandas的 ...

  3. Python数据分析:Numpy学习笔记

    Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.ze ...

  4. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  5. 【大数据技术能力提升_2】numpy学习

    numpy学习 标签(空格分隔): numpy python 数据类型 5种类型:布尔值(bool),整数(int),无符号整数(uint).浮点(float).复数(complex) 支持的原始类型 ...

  6. Python NumPy学习总结

    一.NumPy简介 其官网是:http://www.numpy.org/ NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Num ...

  7. NumPy学习(让数据处理变简单)

    NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...

  8. numpy 学习笔记

    numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...

  9. numpy 学习总结

    numpy 学习总结 作者:csj更新时间:01.09 email:59888745@qq.com 说明:因内容较多,会不断更新 xxx学习总结: 回主目录:2017 年学习记录和总结 #生成数组/使 ...

随机推荐

  1. scrpy-cookie

    两种方法模拟登陆 1.直接携带cookie import re import scrapy class RenrenSpider(scrapy.Spider): name = 'renren' all ...

  2. java反射应用

    package cn.sxt.TestClass; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetE ...

  3. Https证书配置

    本文介绍配置免费证书的方法 具体步骤: 一.获取免费CA证书 步骤1到腾讯云找到: 二.申请完成 后域名验证指引 申请域名型证书,可以通过以下方式验证域名的所有权: 1. 手动 DNS 验证 通过解析 ...

  4. Burpsuite Sqlmap Nmap入门总结

    burpsuite sqlmap nmap 简介 sqlmap基础 五种独特sql注入技术: 基于布尔类型的盲注 基于时间的盲注 基于报错注入 联合查询注入 堆查询注入 sqlmap入门 1.判断是否 ...

  5. 创建第一个vue实例

    一.vue安装与下载 1. 官网下载  下载地址 选择开发版本 2. 打开sublime,新建vue文件夹,将下载好的代码vue.js放入vue文件夹中. 3. 新建index.html文件,在hea ...

  6. 安装SQL server 2008 R2和QL server 2008,与SQL server 2008升级SQL server 2008 R2

    安装SQL server 2008 R2和由SQL server 2008升级SQL server 2008 R2 前提条件: 由SQL server2008 升级SQL server2008 R2 ...

  7. Django系列之web应用与http协议

    第一节:最简单的web应用程序 web应用程序指供浏览器访问的程序,通常也简称为web应用.应用程序有两种模式C/S,B/S.C/S是客户端/服务器程序.也就是说这类程序一般独立运行.而B/S就是浏览 ...

  8. linux/centOS 下安装 ngnix

    Nginx 是一款轻量级的 Web 服务器/反向代理服务器,比较流行,建议在 Linux 下安装运行. Nginx 需要的依赖 它们包括:gcc,openssl,zlib,pcre(可通过rpm -q ...

  9. Maven模块化开发

    Maven模块化开发 多人协同开发时,特别是规模较大的项目,为方便日后代码维护管理会将每个人的工作细分到具体的功能和模块上.随着项目的不断扩大,模块会越来越多,后续更加难以维护和扩展,为应对这种情况后 ...

  10. Linux系统中无iptables文件的解决

    在RHEL 7 / CentOS 7中,firewalld被引入来管理iptables,CentOS7开始,默认是没有iptables的,而是使用firewall防火墙.本文将屏蔽掉firewall, ...