我想使用 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) 我已经看到如何组合 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 永远不会改变。
我想弄清楚如何创建这个数组而不将每个值放入每手中。
有没有一种方法可以使用以下信息:除了第一个值之外,每个值都是其前一个值的两倍?
我的代码如下:
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) 谁能告诉如何解释这种寻址方式: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) 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) 我有一个尺寸如下的二维 numpy-ndarray:(416,2)即
[[10,10],[3,6],[2,4],[10,10],[0,0],[2,4],...] 等等
我需要找出是否有任何重复,如果有,它们在哪里。该副本本身的价值并不重要(即上面的例子将使:[0,2,3,5,...])
有没有办法做到这一点?谢谢你。
下面显示了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) 我遇到了一段代码,作者在数组中使用了ellipsis运算符(例如,[..., 1])numpy而不是slice运算符(例如,[:, 1])来获取数组部分。
我对这个主题的研究:
从scipy github wiki 页面我了解到这两个运算符执行有些相似的操作,即返回多维数组的切片。
我已经讨论过这个问题,它涉及numpy数组的几种切片技术,但没有找到关于何时应该使用slice运算符以及何时需要使用运算符的情况的详细说明ellipsis,或者它们的功能是否相同。
从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?我非常感谢您对我的问题进行详细说明,并提前感谢您的宝贵时间。
给定一个整数,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
变量:
x 和 y 是形状为 (N, 2) 的 N 个二维向量数组。
题:
有没有办法在两个数组中对应于相同位置的向量之间执行点积,而无需像列表理解那样显式地编写元素:[np.dot(x[i], y[i]) for i in range(N)] ?
通常,在 numpy 的其他函数中,我使用该选项axis = 1来实现这一点,但我发现 np.dot 中不存在它。有没有办法设法矢量化这个操作?
numpy-ndarray ×10
numpy ×9
python ×8
indexing ×2
matrix ×2
python-3.x ×2
arrays ×1
duplicates ×1
pandas ×1