python中的点表示什么_一个点在纽比中的典型表示是什么?

笛卡尔空间中单个点的表示有点微不足道。您甚至可以使用平面元组或列表来表示它们,矩阵运算仍然可以工作,但是如果您想添加或缩放它们(这基本上就是linear spaces的用途),则必须使用数组。为什么不能在一个矩阵的边上同时使用一个矩阵{1}和一个矩阵{1}一起使用import numpy as np

rot90 = np.array([[0, -1, 0], [1, 0, 0], [0, 0, 1]]) # rotate 90 degrees around z

inp = np.array([1, 0, 0]) # x

# rotate:

inp_rot = rot90 @ inp # y

# inverse transform:

inp_invrot = inp @ rot90 # -y

一个更好的问题是如何表示笛卡尔空间中点的集合。如果你有N点,你可能需要使用一个2d数组。但是它应该是什么形状,(N, d)还是{}?答案取决于您的用例,但是如果没有进一步的输入,您需要选择(N, d)。在

默认情况下,numpy中的数组是“C-continuous”,这也称为row major memory layout。这意味着在创建数组时,默认情况下会占用一个连续的内存块,并且项目在内存中一行接一行地排列,以以下索引为例:

^{pr2}$

我们使用numpy的原因之一是,给定类型的连续内存块比相同大小的本机python容器占用的空间小得多,至少对于大型数据集来说是这样。另一个原因是,我们可以使用向量化的操作来“同时”处理输入片段。之所以有这样的引语,是因为从根本上讲,CPU的手是受限制的,但事实证明,通过充分利用CPU缓存,可以实现相当大的加速。这就是内存布局发挥作用的地方:通过对访问内存中接近的元素的数组进行操作,您有更高的机会利用缓存,并且RAM和CPU之间的通信减少将导致运行时间缩短。在

这个问题并不简单,因为沿着较大的非连续维度进行向量化可能会比沿着较小的连续维度进行向量化来得更快。然而,在没有任何附加信息的情况下,一个好的经验法则是将这些维度放在最后,在那里您可能执行向量化操作和缩减,例如.mean()或{}。对于N维空间中的N点,很可能需要分别处理每个点。矩阵乘法中的循环以及诸如标量积和向量范数之类的东西都希望您在给定的点上处理一个接一个的分量。在

这就是为什么numpy和scipy函数通常采用形状(N, d)的数组:内部维度是第二个,“批处理”索引是第一个。以^{}为例:Parameters:

a : (…, M, M) array

Matrices for which the eigenvalues and right eigenvectors will be computed

Returns:

w : (…, M) array

The eigenvalues, each repeated according to its multiplicity. The eigenvalues

are not necessarily ordered. The resulting array will be of complex type,

unless the imaginary part is zero in which case it will be cast to a real

type. When a is real the resulting eigenvalues will be real (0 imaginary

part) or occur in conjugate pairs

[...]

它将多维数组视为一批矩阵,其中最后两个索引对应于笛卡尔索引。同样,返回的特征值和特征向量首先是批索引,最后是向量空间索引。在

一个更直接的例子是^{},它计算集合中点对之间的距离:Parameters

X : ndarray

An m by n array of m original observations in an n-dimensional space.

[...]

你又可以看到笛卡尔指数是最后一个。^{}和其他一些函数也是如此。在

所以,如果你有充分的理由使用这两种表达方式:那么做。但是,如果你没有一个好的指标(比如分析两个表示的结果),你应该坚持使用numpy和scipy(shape(N, d))通常使用的“向量/矩阵批处理”方法,因为你甚至可能最终使用这些函数中的一些函数,而你的表示将是本机的。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值