假设我制作一个二维数组,如下所示:
>>> A=np.arange(16).reshape((4,4))
>>> A
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
并且我希望能够围绕任何给定的元素选择一个3x3的窗口,以便该窗口围绕边界包裹,我该怎么做?我知道如果窗口的边界不与原始数组的边界重叠,我可以这样做:
>>> A[1:4,0:3]
array([[ 4, 5, 6],
[ 8, 9, 10],
[12, 13, 14]])
但是,如果我使用类似的表达式,A[i-1:i+2,j-1:j+2]
则仅对于i = 0,例如j = 0,返回一个空数组。
import numpy as np
A=np.arange(16).reshape((4,4))
def neighbors(arr,x,y,n=3):
''' Given a 2D-array, returns an nxn array whose "center" element is arr[x,y]'''
arr=np.roll(np.roll(arr,shift=-x+1,axis=0),shift=-y+1,axis=1)
return arr[:n,:n]
print(A)
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]
# [12 13 14 15]]
print(neighbors(A,0,0))
# [[15 12 13]
# [ 3 0 1]
# [ 7 4 5]]
print(neighbors(A,1,0))
# [[ 3 0 1]
# [ 7 4 5]
# [11 8 9]]
问题内容: 我有一个很大的数组,其中每一行都是一个时间序列,因此需要保持秩序。 我想为每行选择一个给定大小的随机窗口。 在我看来,理想的解决方案是: 但不幸的是,这不起作用 我现在要进行的操作非常慢: 当然,我可以对列表进行理解(并获得最小的速度提升),但是我想知道是否有某种超级聪明的numpy向量化方法可以做到这一点。 问题答案: 这是一种杠杆作用- 在具有行的更大数组上进行运行时测试-
问题内容: 我有大量的数据,需要比较该数组中所有样本的距离与该数组中所有其他元素的距离。以下是我的数据集的一个非常简单的示例。 有没有一种方法可以为非示例索引的索引建立一个numpy数组?在上面的示例中,我创建了一个名为other_indexes的列表。由于各种原因,我宁愿不必这样做(大型数据集,线程,正在运行的系统上的内存非常低等,等等)。有没有办法做类似的事情.. 我读到numpy面具可以做到
问题内容: 我正在使用和在CSS中创建一个半透明的圆圈。 在这个圆的周围,我希望有另一个完全透明的边界(例如10个像素),而又想有另一个半透明的边界(10个像素)。 这是我创建圈子的方式: 我需要怎么做才能在现有边界周围创建另一个边界,然后再创建另一个边界? 问题答案: 您可以使用简单的边框并将背景裁剪到,以在填充区域中创建透明部分: 您也可以考虑 您可以轻松缩放到任意数量的边界:
问题内容: 我有两个相关的numpy数组和。我需要从中选择随机行,并将其存储在数组中,并将其对应的值附加到随机选择的点的索引上。 我有另一个数组,它存储我不想采样的索引列表。 我怎样才能做到这一点? 样本数据: 如果这些是随机选择的(其中): 所需的输出将是: 我怎样才能做到这一点? 问题答案: 您可以使用以下方法创建随机索引: 然后,您只需要使用结果索引数组:
我尝试在数据帧“df_energy”中添加一个新的列“energy_class”,如果“consumpion_energy”值为 有什么办法可以帮我吗? 先谢谢你
问题内容: 我有一个元组列表。每个元组都有5个元素(对应于5个数据库列),我想进行查询 例如 是否可以通过某种方式查询元组列表? 问题答案: 如果您已命名元组,则可以执行以下操作: 否则使用索引: 或者按照Nate的答案使用元组拆包。请注意,您不必为每个拆开的物品都赋予一个有意义的名称。您可以打开一个六项元组的包装。