numpy:数组的运算与广播机制

  先将模块导入到文件中

import numpy as np

  创建两个数组

arr1 = np.array([[1, 1], [3, 3]])
arr2 = np.array([[1, 2], [3, 4]])

1、数组的运算

(1)四则运算

print("数组相加:\n", arr1 + arr2) # 对应位置元素相加
print("数组相减:\n", arr1 - arr2) # 对应位置元素相减
print("数组相乘:\n", arr1 * arr2)  # 对应位置元素相乘
print("数组相乘:\n", np.multiply(arr1, arr2))  # 对应位置元素相乘
print("数组相乘:\n", type(np.multiply(arr1, arr2)))  # 对应位置元素相乘 ,返回数组
print("矩阵对应位置元素相乘:\n", type(np.multiply(np.mat(arr1), np.mat(arr2))))  # 返回矩阵
print("数组相除:\n", arr1 / arr2) # 对应位置元素相除
print("数组相除:\n", arr2 / arr1) # 对应位置元素相除,注意:0不能做除数
print("数组相幂:\n", arr1 ** arr2)  # 对应位置求幂

(2)比较运算

# 返回的是对应位置的比较结果
print(" arr1 > arr2 :\n", arr1 > arr2)
print(" arr1 < arr2 :\n", arr1 < arr2)
print(" arr1 == arr2 :\n", arr1 == arr2)
print(" arr1 != arr2 :\n", arr1 != arr2)

  比较运算——返回bool数组,比较条件成立返回True,条件不成立则返回False

(3)逻辑运算

print("any: ", np.any(arr1 == arr2))
print("any: ", np.any(arr1 > arr2))
print("all: ", np.all(arr1 == arr2))
print("all: ", np.all(arr1 <= arr2))

  逻辑运算or、and,返回bool值,or——any()只要一个满足条件,返回True;and——all()只有全部满足条件,才返回True

2、数组的广播机制

  创建两个数组

arr1 = np.array([[1, 2, 3], [4, 5, 6]])  # shape (2,3)
arr2 = np.array([[1, 1], [1, 1], [1, 1]])  # shape(3,2)
arr3 = np.array([[1], [1]])  # shape (2,1)

  对arr1和arr3进行相加运算

print("数组相加的结果:\n", arr1 + arr3)

  数组相加的结果:

原文地址:https://www.cnblogs.com/xmcwm/p/11834513.html

时间: 2024-11-05 22:51:36

numpy:数组的运算与广播机制的相关文章

numpy数组的运算

numpy数组的运算 数组的乘法 >>> import numpy as np >>> arr=np.array([[1,2,3],[4,5,6]]) >>> arr array([[1, 2, 3], [4, 5, 6]]) >>> arr*arr array([[ 1, 4, 9], [16, 25, 36]]) 数组的减法 >>> arr-arr array([[0, 0, 0], [0, 0, 0]]) 数组

Numpy数组对象的操作-索引机制、切片和迭代方法

前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange(10,16) In [2]: a Out[2]: array([10, 11, 12, 13, 14, 15]) #使用正数作为索引 In [3]: a[3] Out[3]: 13 #还可以使用负数作为索引 In [4]: a[-4] Out[4]: 12 #方括号中传入多数索引值,可同时选择多个

1.5 NumPy数组的计算:广播

目录 第一章 numpy入门 1.5 数组的计算:广播 1.5.1 广播的介绍 1.5.2 广播的规则 1.5.3 广播的实际应用 第一章 numpy入门 1.5 数组的计算:广播 1.5.1 广播的介绍 对于同样大小的数组,二进制操作是对相应元素的逐个计算: import numpy as np a = np.array([1,3,5]) b = np.array([2,4,6]) c = np.ones((3,3)) print("原数组a:\n",a) print("原

Numpy常用概念-对象的副本和视图、向量化、广播机制

一.引言 在我们操作数组的时候,返回的是新数组还是原数组的链接,我们就需要了解对象副本和视图的区别. 向量化和广播是numpy内部实现的基础. 二.对象副本和视图 我们应该注意到,在操作数组的时候返回的不是视图就是副本. 副本:复制 视图:链接 1.所有的赋值运算不会为此创建副本.把数组a赋值给了数组b,实际上不是为数组a创建副本,b只是调用a的另一种方式.实际上,修改了b数组的第二个元素,a数组的第二个数组也随之被改变. In [1]: a = np.array([1,2,3,4,5]) In

numpy数组广播

numpy数组的广播功能强大,但是也同时让人疑惑不解,现在让我们来谈谈其中的原理. 广播原则: 如果两个数组的后缘维度(即:从末尾开始算起的维度)的轴长相符或其中一方的长度为1,则认为它们是广播兼容的,广播会在缺失和(或)长度为1的轴上进行. 上面的原则很重要,是广播的指导思想,下面我们来看看例子. 1.其实在最简单的数组与标量数字之间的运算就存在广播,只是我们把它看作理所当然了. 2.再看下一个例子,这个大家都会一致认为这是广播了 根据广播原则:arr1的shape为(4,1),arr2的sh

[开发技巧]&#183;Numpy广播机制的深入理解与应用

[开发技巧]·Numpy广播机制的深入理解与应用 1.问题描述 我们在使用Numpy进行数据的处理时,经常会用到广播机制来简化操作,例如在所有元素都加上一个数,或者在某些纬度上作相同的操作.广播机制很方便,但是概念却也有些复杂,可能会让一些初学者感到困惑,在使用过程中,产生一些错误. 本文以实战演练的方式来讲解广播机制的概念与应用,不仅仅适用于Numpy,在TensorFlow,PyTorch,MxNet的广播机制中同样适用. 2.原理讲解 广播机制遵循一下准则: 1.首先以最长纬度为准拓展为相

numpy广播机制,取特定行、特定列的元素 的高级索引取法

numpy广播机制,取特定行.特定列的元素 的高级索引取法 enter description here enter description here 原文地址:https://www.cnblogs.com/lishikai/p/12361513.html

numpy 数组运算

对数组做基本的算术运算,将会对整个数组的所有元组进行逐一运算,并将运算结果保存在一个新的数组内,而不会破坏原始的数组. >>> a = np.array( [20,30,40,50] ) >>> b = np.arange( 4 ) >>> b array([0, 1, 2, 3]) >>> c = a-b >>> c array([20, 29, 38, 47]) >>> b**2 array([

数据分析(1) Numpy数组

Numpy的数组类被称作ndarray,通常被称作数组. 特点:元素类型相同,数量事先给定. 1 创建方式 (1)array( ):接收一个普通的Python序列(元组与列表并无区别),并将其转换为ndarray: # 使用列表创建 list1 = [1, 2, 3, 4, 5] print('使用一维列表创建:\n', np.array(list1)) list2 = [[1, 2, 3], [4, 5, 6]] print('使用二维列表创建:\n', np.array(list2)) #