【NumPy】 之常见运算(np.around、np.floor、np.ceil、np.where,n p.arange,np.dot)

around

np.around 返回四舍五入后的值,可指定精度。

around(a, decimals=0, out=None)

a 输入数组

decimals 要舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置

·

# -*- coding: utf-8 -*-
"""
@author: tz_zs
"""
import numpy as np
 
n = np.array([-0.746, 4.6, 9.4, 7.447, 10.455, 11.555])
 
around1 = np.around(n)
print(around1)  # [ -1.   5.   9.   7.  10.  12.]
 
around2 = np.around(n, decimals=1)
print(around2)  # [ -0.7   4.6   9.4   7.4  10.5  11.6]
 
around3 = np.around(n, decimals=-1)
print(around3)  # [ -0.   0.  10.  10.  10.  10.]
·

 

floor

np.floor 返回不大于输入参数的最大整数。 即对于输入值 x ,将返回最大的整数 i ,使得 i <= x。 注意在Python中,向下取整总是从 0 舍入。

·

# -*- coding: utf-8 -*-
"""
@author: tz_zs
"""
import numpy as np
 
n = np.array([-1.7, -2.5, -0.2, 0.6, 1.2, 2.7, 11])
 
floor = np.floor(n)
print(floor)  # [ -2.  -3.  -1.   0.   1.   2.  11.]
 
·

 

ceil

np.ceil 函数返回输入值的上限,即对于输入 x ,返回最小的整数 i ,使得 i> = x。

# -*- coding: utf-8 -*-
"""
@author: tz_zs
"""
import numpy as np
 
n = np.array([-1.7, -2.5, -0.2, 0.6, 1.2, 2.7, 11])
 
ceil = np.ceil(n)
print(ceil)  # [ -1.  -2.  -0.   1.   2.   3.  11.]
·

 

np.where

https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html

.

import numpy as np
 
data = np.random.random([2, 3])
print data
'''
[[ 0.93122679  0.82384876  0.28730977]
 [ 0.43006042  0.73168913  0.02775572]]
'''
 
result = np.where(data > 0.5, data, 0)
print result
'''
[[ 0.93122679  0.82384876  0.        ]
 [ 0.          0.73168913  0.        ]]
'''

 

 

np.arange

arange([start,] stop[, step,], dtype=None)

返回一个序列

Examples
--------
>>> np.arange(3)
array([0, 1, 2])
>>> np.arange(3.0)
array([ 0.,  1.,  2.])
>>> np.arange(3,7)
array([3, 4, 5, 6])
>>> np.arange(3,7,2)
array([3, 5])

np.dot

dot(a, b, out=None):

1.如果处理的是一维数组,则得到的是两数组的內积(顺便去补一下数学知识)

 

In : d = np.arange(0,9)
Out: array([0, 1, 2, 3, 4, 5, 6, 7, 8])
In : e = d[::-1]
Out: array([8, 7, 6, 5, 4, 3, 2, 1, 0])

In : np.dot(d,e) 
Out: 84

 

2.如果是二维数组(矩阵)之间的运算,则得到的是矩阵积(mastrix product)。

 

In : a = np.arange(1,5).reshape(2,2)
Out:

array([[1, 2],
       [3, 4]])

In : b = np.arange(5,9).reshape(2,2)
Out: array([[5, 6],
            [7, 8]])

In : np.dot(a,b)
Out:
array([[19, 22],
       [43, 50]])

 

所得到的数组中的每个元素为,第一个矩阵中与该元素行号相同的元素与第二个矩阵与该元素列号相同的元素,两两相乘后再求和。

这句话有点难理解,但是这句话里面没有哪个字是多余的。结合下图理解这句话。

3.dot()函数可以通过numpy库调用,也可以由数组实例对象进行调用。a.dot(b) 与 np.dot(a,b)效果相同。

矩阵积计算不遵循交换律,np.dot(a,b) 和 np.dot(b,a) 得到的结果是不一样的。

<think>我们正在讨论NumPy中的np.add函数。根据用户查询,他们想了解如何使用np.add对变量a和b进行加法运算,并请求示例。根据引用,我们知道:-np.add用于两个数组的元素级加法(引用[1]和[4])。-基本语法:numpy.add(x1,x2,...)(引用[2])。-支持广播机制(引用[4])。因此,我们将提供:1.导入NumPy。2.创建两个数组a和b(可以是列表或数组形式)。3.使用np.add(a,b)进行加法运算,或者直接使用a+b(因为NumPy重载了运算符)。4.给出示例代码和输出。注意:用户明确要求使用np.add,所以我们主要展示这个函数的使用。示例将包括:-一维数组相加-二维数组相加(如果需要的话,可以展示广播)但用户的问题中只要求了a和b,所以我们先展示一维数组。另外,引用[3]提到了arange,我们可以用这个来创建示例数组,但用户没有特别要求,我们可以自由选择。我们按照以下步骤:1.导入numpy2.创建数组a和b(例如,a=[1,2,3],b=[4,5,6])3.使用np.add(a,b)得到结果同时,我们可以提到,np.add也可以用于标量和数组的加法(广播)。但用户问题中只要求了两个变量a和b,所以我们主要展示两个数组的加法。由于用户要求示例,我们提供代码示例。注意:用户问题中提到了“示例ab加法运算”,所以我们直接给出示例。</think>### NumPy `np.add` 函数使用方法详解 `np.add()` 是 NumPy 中执行**元素级加法**的核心函数,用于对两个数组的对应元素进行加法运算。基本语法如下: ```python numpy.add(x1, x2, out=None, *args, **kwargs) ``` - **`x1, x2`**: 输入数组(支持广播机制) - **`out`**: 可选参数,指定计算结果存储位置 - **返回值**: 与输入数组形状相同的加法结果数组 #### 基础用法示例 ```python import numpy as np # 创建一维数组 a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # 使用 np.add 进行加法 result = np.add(a, b) print(result) # 输出: [5 7 9] ``` #### 广播机制示例 当数组形状不同时,NumPy 会自动进行广播扩展: ```python # 二维数组 + 一维数组 matrix = np.array([[1, 2], [3, 4]]) vector = np.array([10, 20]) result = np.add(matrix, vector) print(result) # 输出: [[11 22] # [13 24]] ``` #### 等价操作 `np.add(a, b)` 完全等价于直接使用 `+` 运算符: ```python print(a + b) # 输出: [5 7 9] (np.add 结果相同) ``` #### 原地计算优化 通过 `out` 参数可避免创建新数组: ```python output = np.empty_like(a) np.add(a, b, out=output) # 结果直接存入 output ``` > **关键特性总结**: > 1. 元素级运算:$c_i = a_i + b_i$ 对所有元素独立计算 > 2. 广播支持:自动扩展不同形状的数组(如标量与数组相加) > 3. 性能优化:底层 C 实现,远快于 Python 循环[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值