首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将NumPy数组归一化为单位向量?

如何将NumPy数组归一化为单位向量?
EN

Stack Overflow用户
提问于 2014-01-09 20:25:04
回答 11查看 770K关注 0票数 260

我想把一个NumPy数组转换成一个单位向量。更具体地说,我正在寻找此归一化函数的等效版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def normalize(v):
    norm = np.linalg.norm(v)
    if norm == 0: 
       return v
    return v / norm

此函数用于处理向量v的范数值为0的情况。

sklearnnumpy中是否提供了类似的功能

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2014-01-09 21:15:34

如果你正在使用scikit learn,你可以使用sklearn.preprocessing.normalize

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
from sklearn.preprocessing import normalize

x = np.random.rand(1000)*10
norm1 = x / np.linalg.norm(x)
norm2 = normalize(x[:,np.newaxis], axis=0).ravel()
print np.all(norm1 == norm2)
# True
票数 209
EN

Stack Overflow用户

发布于 2014-01-09 21:59:18

我同意,如果这样的函数是所包含的库的一部分,那就太好了。但据我所知,情况并非如此。因此,这里是一个版本的任意轴,提供最佳的性能。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

def normalized(a, axis=-1, order=2):
    l2 = np.atleast_1d(np.linalg.norm(a, order, axis))
    l2[l2==0] = 1
    return a / np.expand_dims(l2, axis)

A = np.random.randn(3,3,3)
print(normalized(A,0))
print(normalized(A,1))
print(normalized(A,2))

print(normalized(np.arange(3)[:,None]))
print(normalized(np.arange(3)))
票数 56
EN

Stack Overflow用户

发布于 2018-07-25 07:17:44

这可能也适用于你。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
normalized_v = v / np.sqrt(np.sum(v**2))

但当v的长度为0时会失败。

在这种情况下,引入一个小常量来防止零除可以解决这个问题。

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21030391

复制
相关文章
Numpy数组
一、NumPy简介 NumPy是针对多维数组(Ndarray)的一个科学计算(各种运算)包,封装了多个可以用于数组间计算的函数。 数组是相同数据类型的元素按一定顺序排列的组合,注意必须是相同数据类型的,比如说全是整数、全是字符串等。 array([1,2,3]) # 数值型数组 array(['w','s','q'],dtype = '<U1') # 字符型数组 二、NumPy 数组的生成 要使用 NumPy,要先有符合NumPy数组的数据,不同的包
见贤思齊
2020/08/05
4.9K0
Numpy数组
Numpy 中 axis = n 对应 ndarray 的第 nnn 层 [],从最外层的 axis = 0,逐渐往内层递增。
hotarugali
2022/03/03
7890
Numpy数组
如何将NumPy数组保存到文件中以进行机器学习
祝大家新年快乐,今天看到的文章然后就翻译了一下,涉及到的技术点都很简单,算是一篇水文,而且我对文章的改动比较大,但是还希望能给你带来一点帮助。
PM小王
2020/01/15
7.8K0
NumPy 数据归一化、可视化
仅使用 NumPy,下载数据,归一化,使用 seaborn 展示数据分布。 下载数据 import numpy as np url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data' wid = np.genfromtxt(url, delimiter=',', dtype='float', usecols=[1]) 仅提取 iris 数据集的第二列 usecols = [1] 展示数据 array([3
double
2020/10/14
1.4K0
numpy创建数组
NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。
全栈程序员站长
2022/06/26
1.6K0
numpy创建数组
numpy 数组操作
语法:numpy.arange([start, ] stop, [step, ]dtype=None)
foochane
2019/05/23
8440
Python Numpy 数组
NumPy(Numeric Python,以numpy导入)是一系列高效的、可并行的、执行高性能数值运算的函数的接口。numpy模块提供了一种新的Python数据结构——数组(array),以及特定于该结构的函数工具箱。该模块还支持随机数、数据聚合、线性代数和傅里叶变换等非常实用的数值计算工具。
smartsi
2019/08/07
2.4K0
Numpy 结构数组
在C语言中我们可以通过struct关键字定义结构类型,结构中的字段占据连续的内存空间,每个结构体占用的内存大小都相同,因此可以很容易地定义结构数组。和C语言一样,在NumPy中也很容易对这种结构数组进行操作。
用户6021899
2019/08/14
8750
numpy:数组比较
1、单条件 m=np.array([ [1,2,3], [10,20,30], [35,45,55] ]) n=(m==20) print(n) 输出 [[False False False] [False True False] [False False False]] col2=(m[:,1]==20) print(col2) 输出 [False True False] print(m[col2,:]) 输出true值的那一行数据 [[10 20 30]] 2、多条件 v
程裕强
2019/10/24
1.5K0
NumPy 最详细教程(1):NumPy 数组
Numpy 是 Python 中科学计算的核心库,NumPy 这个词来源于 Numerical 和 Python 两个单词。它提供了一个高性能的多维数组对象,以及大量的库函数和操作,可以帮助程序员轻松地进行数值计算,广泛应用于机器学习模型、图像处理和计算机图形学、数学任务等领域。
丹枫无迹
2019/03/20
3.6K0
3-Numpy数组
首先让我们讨论一些有用的数组属性。我们将从定义三个随机数组开始,分别是一维,二维和三维数组。我们将使用NumPy的随机数生成器,我们将使seed设置初始值,以确保每次运行此代码时都生成相同的随机数组:
用户1418372
2020/03/20
1.1K0
numpy 数组拼接方法
方法一: 转为list,使用“+”, append()或者extend() 可做简单的拼接。不过要注意一些小问题,如下图:
全栈程序员站长
2022/08/23
1.1K0
numpy 数组拼接方法
numpy入门-数组运算
对数组做基本的算术运算,将会对整个数组的所有元组进行逐一运算,并将运算结果保存在一个新的数组内,而不会破坏原始的数组 数组和向量之间的运算 数组和数组之间的运算 通用函数的使用 数组和向量之间的运算 import numpy as np a = np.array([20,40,50,80]) b = np.arange(4) print(a) print(b) [20 40 50 80] [0 1 2 3] c = a - b c array([20, 39, 48, 77]) b**2 # 每
皮大大
2021/03/02
1.1K0
numpy之数组基础
展平 ravel 只显示变为一维数组的视图 flatten将多维数组变成一维数组后保存结果
用户7886150
2020/12/25
2.3K0
Numpy:掩膜数组
所谓掩膜数组是指数据和掩膜共同构成的数组。这里的数据通常是指不完整或包含缺省值的数据。对于完整的数据来说也不需要转换为掩膜数组。掩膜是指用来将数据中不完整或包含缺省值的的地方给遮住。被遮住的部分就不再参与后续运算。
bugsuse
2020/04/21
2.8K0
enumerate 遍历numpy数组
enumerate 遍历numpy数组 遍历一维数组 i,j 分别表示数组的 索引 和 存储的值 import numpy as np a=np.array([1,2,3,4]) b=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) for i,j in enumerate(a): print("i",i,"j",j) # i 0 j 1 # i 1 j 2 # i 2 j 3 # i 3 j 4 遍历二维数组 i,j 分别表示数组的 行的索引 和 每一行中
演化计算与人工智能
2020/08/14
1.5K0
numpy入门-数组创建
Numpy 基础知识 Numpy的主要对象是同质的多维数组。Numpy中的元素放在[]中,其中的元素通常都是数字,并且是同样的类型,由一个正整数元组进行索引。 每个元素在内存中占有同样大小的空间。在Numpy中,维度被称为轴。例如对于[1, 2, 1]有一个轴,并且长度为3。而[[ 1., 0., 0.], [ 0., 1., 2.]]则有两个轴,第一个轴的长度为2,第二个轴的长度为3。 Numpy数组类的名字叫做ndarray,经常简称为array。要注意将numpy.array与标准Python库中的a
皮大大
2021/03/02
1.1K0
使用数组作为索引遍历numpy数组
python使用数组作为索引遍历数组 import numpy as np a=np.arange(0,5) print(a) # [0 1 2 3 4] b=np.arange(0,10).reshape(5,2) print(b) # [[0 1] # [2 3] # [4 5] # [6 7] # [8 9]] # 将一维数组作为二维数组的索引 c0=b[a][:,0] print(c0) # [0 2 4 6 8] c1=b[a][:,1] print(c1) # [1 3 5 7 9
演化计算与人工智能
2020/08/14
2.5K0
NumPy Essentials 带注释源码 二、NumPy 数组对象
# 来源:NumPy Essentials ch2 数组索引和切片 # 创建 100x100 个 0~1 随机数 x = np.random.random((100, 100)) # 取第 42 行 87 列的元素(从零开始) y = x[42, 87] # 取第 k 行的所有元素 # 等价于 x[k] 和 x[k, ...] print(x[k, :]) a = np.array([[10 * y + x for x in range(6)] for y in range(6)]) '''
ApacheCN_飞龙
2019/02/15
5170
5-Numpy数组广播
NumPy广播的优点是在复制值得过程中没有占用额外得空间,但是在我们考虑广播时,它是一种有用的思维模型。 例如如下对三维数组数值扩展
用户1418372
2020/03/19
8510

相似问题

如何从numpy数组中获取单位向量

10

更快的图像归一化(numpy数组)

114

如何将numpy数组的元素设置为numpy数组?

21

如何将NumPy数组归一化到一定范围内?

81

归一化来自不同"image“对象的numpy数组

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文