arrays - a[ :, None] 和 a[ :, ] 之间的区别

标签 arrays python-3.x numpy

<分区>

我想了解更多 numpy 来处理数组。我发现 a[:,None] 和 a[:,] 是不同的。我想深入了解何时何地使用它们。

我尝试解决以特殊方式从 2d 数组中减去 1d 的问题,就像 numpy-subtract-add-1d-array-from-2d-array我意识到它在 a[:,None] 和 a[:,] 之间是不同的。


>>> import numpy as np
>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])

>>> a
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> b = np.array([1,2,3])

>>> b
array([1, 2, 3])

>>> b[:,None]
array([[1],
       [2],
       [3]])

>>> b[:,]
array([1, 2, 3])

>>> b[None,:]
array([[1, 2, 3]])

>>> a-b[None,:]
array([[0, 0, 0],
       [3, 3, 3],
       [6, 6, 6]])

>>> b[,:] #false operation!!!
SyntaxError: invalid syntax

>>> a-b
array([[0, 0, 0],
       [3, 3, 3],
       [6, 6, 6]])

>>> a-b[:,np.newaxis]
array([[0, 1, 2],
       [2, 3, 4],
       [4, 5, 6]])

谁能给我官方或具体的引用资料?我会非常感谢你!

最佳答案

我猜你应该使用 np.newaxis 而不是 None,这实际上是一样的,但是 np.newaxis 的代码是更具可读性,因为它在此维度上插入了一个新轴。

参见: https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.indexing.html#numpy.newaxis

关于arrays - a[ :, None] 和 a[ :, ] 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55535289/

相关文章:

php - 每个员工所做的事件摘要

c - 如何读取文本文件中的逗号分隔行并将其字段插入到结构指针数组中?

python - 考虑顺序对 pandas 列执行累积计数

python-3.x - 如何在树莓派上交叉编译 SIP/PyQt5

python - 子类化 numpy.ndarray - 为什么 __array_finalize__ 在这里没有被调用两次?

c - 如何检查特定索引位置的二维数组中是否有元素?

php - 删除数组中的重复值

python - 如何将 Python 库从 Python2 转换为 Python3

python - 在Python中绘制条形图

python - 如何从 map 中获取值并将它们设置为 numpy 矩阵行?