我有大量的数据,需要比较该数组中所有样本的距离与该数组中所有其他元素的距离。以下是我的数据集的一个非常简单的示例。
import numpy as np
import scipy.spatial.distance as sd
data = np.array(
[[ 0.93825827, 0.26701143],
[ 0.99121108, 0.35582816],
[ 0.90154837, 0.86254049],
[ 0.83149103, 0.42222948],
[ 0.27309625, 0.38925281],
[ 0.06510739, 0.58445673],
[ 0.61469637, 0.05420098],
[ 0.92685408, 0.62715114],
[ 0.22587817, 0.56819403],
[ 0.28400409, 0.21112043]]
)
sample_indexes = [1,2,3]
# I'd rather not make this
other_indexes = list(set(range(len(data))) - set(sample_indexes))
sample_data = data[sample_indexes]
other_data = data[other_indexes]
# compare them
dists = sd.cdist(sample_data, other_data)
有没有一种方法可以为非示例索引的索引建立一个numpy数组?在上面的示例中,我创建了一个名为other_indexes的列表。由于各种原因,我宁愿不必这样做(大型数据集,线程,正在运行的系统上的内存非常低等,等等)。有没有办法做类似的事情..
other_data = data[ indexes not in sample_indexes]
我读到numpy面具可以做到这一点,但我尝试过…
other_data = data[~sample_indexes]
这给了我一个错误。我必须创建一个面具吗?
mask = np.ones(len(data), np.bool)
mask[sample_indexes] = 0
other_data = data[mask]
对于单行语句而言,这并不是最优雅的方法,但是它相当高效,并且内存开销也最小。
如果您最关心的是内存,则np.delete会避免创建掩码,而花哨索引无论如何都会创建一个副本。
再次考虑;np.delete不会修改现有的数组,因此它几乎与您要查找的单行语句完全相同。
我正在尝试从多索引数据帧中仅使用一个索引来创建新的数据帧。 理想情况下,我想要这样的东西: 和: 基本上,我想删除除level之外的多索引的所有其他索引。有没有一个简单的方法可以做到这一点?
问题内容: 从Numpy的教程中,可以使用整数对轴进行索引,例如用于列,用于行,但是我不明白为什么用这种方式对它们进行索引?当处理多维数组时,如何计算每个轴的索引? 问题答案: 根据定义,维的轴号是该维在数组内的索引。它也是在索引编制过程中用于访问该尺寸的位置。 例如,如果2D数组的形状为(5,6),则最多可以访问。因此,轴0是第一维(“行”),轴1是第二维(“列”)。在较高的尺寸中,“行”和“列
问题内容: 我正在尝试仅使用来自多索引DataFrame的一个索引来创建新的DataFrame。 理想情况下,我想要这样的事情: 和: 本质上,我想删除除level之外的多索引的所有其他索引。是否有捷径可寻? 问题答案: 一种方法是简单地重新绑定到所需的MultiIndex级别。您可以通过指定要保留的标签名称来做到这一点: 或使用级别的整数值: MultiIndex的所有其他级别将在此处消失。
问题内容: 假设我有一个带有任意值的矩阵A: 矩阵B包含A中元素的索引: 我该如何选择值一个指向由乙,即: 问题答案: 你可以使用 一个人也可以使用 样品运行
问题内容: 背景 我有一个零初始化的一维NumPy数组。 然后我有一个Pandas DataFrame,其中两列都有索引: 对于每对索引,我想将numpy数组中相应索引的值设置为True。 我目前的解决方案 我可以通过将一个函数应用于DataFrame来做到这一点: 我想向量化此操作 这可以按我期望的方式工作,但是出于乐趣,我想对操作进行矢量化处理。我对此不是很熟练,而且我在网上搜索并没有使我走上
问题内容: 我有一个二维NumPy数组。我知道如何获取轴上的最大值: 如何获得最大元素的索引?我想代替输出。 问题答案: