标签: numpy-ndarray

如何在多个条件下使用 np.arwhere?

我想使用 np.argwhere 或 np.where 选择 1,2,3,12 和 13 的索引。在这两种情况下,以下代码都不起作用。有没有办法使用这两个命令来执行此操作,或者我应该使用它两次而不是使用 & 运算符?

`a= np.array([1,2,3,4,10,12,13])
b = np.argwhere((a<4) & (a>10))
c = np.where((a<4) & (a>10))
print(b)
print(c)`
Run Code Online (Sandbox Code Playgroud)

python numpy numpy-ndarray

1
推荐指数
1
解决办法
2万
查看次数

如何组合 Numpy 数组的最后 2 个维度

我已经看到如何组合 numpy 数组中的维度?

并尝试过,但是当我尝试时

imgs.reshape(img.shape[:-2]+(-1))
Run Code Online (Sandbox Code Playgroud)

我认为这是逻辑扩展,但出现错误:

can only concatenate tuple (not "int") to tuple
Run Code Online (Sandbox Code Playgroud)

我打算对链接问题中已接受的答案进行评论,并直接向他们寻求帮助,而不是为此创建一个新线程,但我没有评论所需的声誉。

编辑:例如,我有一个输入数组,其形状为(x,y,8,8)x 和 y 可以根据输入到函数中的图像而变化。我想把它做成一个形状的数组(x,y,64)。在这种情况下,64 永远不会改变。

numpy python-3.x numpy-ndarray

1
推荐指数
1
解决办法
3639
查看次数

如何更优雅地构造一个 2 的幂数的 numpy 数组?

我想弄清楚如何创建这个数组而不将每个值放入每手中。

有没有一种方法可以使用以下信息:除了第一个值之外,每个值都是其前一个值的两倍?

我的代码如下:


import numpy as np

Matrix = np.array([1,2,4,8,16,32,64,128,256]).reshape (3,3)

print(Matrix)

Run Code Online (Sandbox Code Playgroud)

python numpy jupyter-notebook numpy-ndarray

1
推荐指数
1
解决办法
419
查看次数

如何解释这种 NumPy 索引:a[2::2, ::2]?

谁能告诉如何解释这种寻址方式:a[2::2, ::2]?我不知道如何使用这种索引。

a = np.random.random((6,6))
print(a)
[[0.17948771 0.61436323 0.48768101 0.20540278 0.15331527 0.17766787]
 [0.40028608 0.63915391 0.92719741 0.56604286 0.92959065 0.92707981]
 [0.27554561 0.09253335 0.73841082 0.00840638 0.33683454 0.89065058]
 [0.25030938 0.37093169 0.70789081 0.95205777 0.60483874 0.81425781]
 [0.14250593 0.56916738 0.45440191 0.21140548 0.72945015 0.59313599]
 [0.68116512 0.45349473 0.23057609 0.36349226 0.622701   0.07951557]]

a[2::2, ::2]
array([[0.27554561, 0.73841082, 0.33683454],
       [0.14250593, 0.45440191, 0.72945015]])
Run Code Online (Sandbox Code Playgroud)

python numpy numpy-slicing numpy-ndarray

1
推荐指数
1
解决办法
50
查看次数

在这个 numpy 问题中发生了什么,其中一个 numpy 数组与不同的数组相乘?

import numpy as np

x = np.array([[1, 2], [3, 4], [5, 6]])

y = x [[0,1,2], [0,1,0]]   #:i did not understand this step,what is happening here?

print y

OUTPUT: [1 4 5]
Run Code Online (Sandbox Code Playgroud)

python numpy numpy-ndarray

1
推荐指数
1
解决办法
50
查看次数

在 Python 中查找重复项的索引

我有一个尺寸如下的二维 numpy-ndarray:(416,2)

[[10,10],[3,6],[2,4],[10,10],[0,0],[2,4],...] 等等

我需要找出是否有任何重复,如果有,它们在哪里。该副本本身的价值并不重要(即上面的例子将使:[0,2,3,5,...]

有没有办法做到这一点?谢谢你。

python indexing matrix duplicates numpy-ndarray

1
推荐指数
1
解决办法
105
查看次数

numpy.ix_() 函数有什么作用,输出用于什么?

下面显示了numpy.ix_()函数的输出。输出有什么用?它的结构非常独特。

import numpy as np

>>> gfg = np.ix_([1, 2, 3, 4, 5, 6], [11, 12, 13, 14, 15, 16], [21, 22, 23, 24, 25, 26], [31, 32, 33, 34, 35, 36] )
>>> gfg
(array([[[[1]]],


       [[[2]]],


       [[[3]]],


       [[[4]]],


       [[[5]]],


       [[[6]]]]), array([[[[11]],

        [[12]],

        [[13]],

        [[14]],

        [[15]],

        [[16]]]]), array([[[[21],
         [22],
         [23],
         [24],
         [25],
         [26]]]]), array([[[[31, 32, 33, 34, 35, 36]]]]))
Run Code Online (Sandbox Code Playgroud)

python arrays indexing numpy numpy-ndarray

1
推荐指数
1
解决办法
2507
查看次数

“numpy”中的“切片”(:) 和“省略号”(...) 运算符有什么区别?

我遇到了一段代码,作者在数组中使用了ellipsis运算符(例如,[..., 1])numpy而不是slice运算符(例如,[:, 1])来获取数组部分。

我对这个主题的研究:

  1. scipy github wiki 页面我了解到这两个运算符执行有些相似的操作,即返回多维数组的切片。

  2. 我已经讨论过这个问题,它涉及numpy数组的几种切片技术,但没有找到关于何时应该使用slice运算符以及何时需要使用运算符的情况的详细说明ellipsis,或者它们的功能是否相同。

  3. Example 1我看不出两个运算符之间有任何区别:

示例1:

    import numpy as np

    A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    A[..., 0], A[:, 0]    # Out: (array([1, 4, 7]), array([1, 4, 7]))
    A[..., 0] == A[:, 0]  # Out: array([ True,  True,  True])
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  • slice使用vsellipsis运算符与有何区别numpy.ndarrays
  • 它们可以互换使用吗?
  • 使用其中之一有什么优点吗?

我非常感谢您对我的问题进行详细说明,并提前感谢您的宝贵时间。

numpy python-3.x numpy-ndarray

1
推荐指数
1
解决办法
399
查看次数

在 numpy 中创建特殊结构的 nxn 矩阵:单位矩阵和相同矩阵右移 1 列的总和

给定一个整数,n我想制作n x n以下形式的 numpy 矩阵。

对于n =4

array([[1., 1., 0., 0.],
       [0., 1., 1., 0.],
       [0., 0., 1., 1.],
       [1., 0., 0., 1.]])
Run Code Online (Sandbox Code Playgroud)

对于n= 5

array([[1., 1., 0., 0., 0.],
       [0., 1., 1., 0., 0.],
       [0., 0., 1., 1., 0.],
       [0., 0., 0., 1., 1.],
       [1., 0., 0., 0., 1.]])
Run Code Online (Sandbox Code Playgroud)

在数学上,它将单位矩阵与矩阵相加,该矩阵本质上是单位矩阵向右移动 1 列。这是分解的例子。 在此处输入图片说明

我怎样才能numpy在输入的地方做到这一点n

python numpy matrix pandas numpy-ndarray

1
推荐指数
1
解决办法
104
查看次数

如何在位于向量数组中的向量之间向量化 np.dot?

变量:

x 和 y 是形状为 (N, 2) 的 N 个二维向量数组。

题:

有没有办法在两个数组中对应于相同位置的向量之间执行点积,而无需像列表理解那样显式地编写元素:[np.dot(x[i], y[i]) for i in range(N)]

通常,在 numpy 的其他函数中,我使用该选项axis = 1来实现这一点,但我发现 np.dot 中不存在它。有没有办法设法矢量化这个操作?

python numpy vectorization numpy-ndarray

1
推荐指数
1
解决办法
45
查看次数