Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组上的Python列表理解_Python_Arrays_Numpy - Fatal编程技术网

数组上的Python列表理解

数组上的Python列表理解,python,arrays,numpy,Python,Arrays,Numpy,我有一个numpy数组列表,我正在尝试创建一个包含原始列表中所有元素的新列表,除了一个。我有以下代码: for i in xrange(FOLDS): #fold_sample_sets and fold_sample_labels are a list of 10 numpy arrays. training_samples = [s for s in fold_sample_sets if fold_sample_sets.index(s) != i] trainin

我有一个numpy数组列表,我正在尝试创建一个包含原始列表中所有元素的新列表,除了一个。我有以下代码:

for i in xrange(FOLDS):
    #fold_sample_sets and fold_sample_labels are a list of 10 numpy arrays.
    training_samples = [s for s in fold_sample_sets if fold_sample_sets.index(s) != i]
    training_labels = [l for l in fold_label_sets if fold_label_sets.index(l) != i]
我在解释器中用了一些小例子来尝试这个方法,它似乎很有效。但这里我得到了以下错误:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

关于如何解决这个问题有什么建议吗?

您可以使用数组切片

for i in range(FOLDS):
    # omit set #i from the list
    training_samples = fold_sample_sets[:i] + fold_sample_sets[i+1:]
    training_labels  = fold_label_sets [:i] + fold_label_sets [i+1:]

可以使用数组切片

for i in range(FOLDS):
    # omit set #i from the list
    training_samples = fold_sample_sets[:i] + fold_sample_sets[i+1:]
    training_labels  = fold_label_sets [:i] + fold_label_sets [i+1:]

根据你的理解,你有:

if fold_sample_sets.index(s) != i
if
的条件必须为真/假。通常,当条件是包含多个元素的数组时,会产生此ValueError。例如:

if np.array([True,False]):
    print(1)
这个条件是真的,还是假的?还是两者都有?它是否应该打印1

错误是建议您使用
np.any
np.all
将多个值减为一个。另一种方法是确保未将逻辑运算符应用于多元素数组

什么是折叠样本集索引i(对于
s的典型值


看起来像list
。index
不适用于数组元素。为了计算这个索引,Python将
s
集合中的每个元素进行比较。当我们比较一个列表和另一个列表时,
[1,2]==[3,4]
,我们得到一个简单的布尔值,
False
。但是当我们比较一个数组和另一个数组时,我们得到另一个数组:
np.array([1,2])==np.array([3,4])
array([False,False],dtype=bool)
。这就是产生歧义的地方

进行相同理解的更好方法(没有此
.index
)是:


根据你的理解,你有:

if fold_sample_sets.index(s) != i
if
的条件必须为真/假。通常,当条件是包含多个元素的数组时,会产生此ValueError。例如:

if np.array([True,False]):
    print(1)
这个条件是真的,还是假的?还是两者都有?它是否应该打印1

错误是建议您使用
np.any
np.all
将多个值减为一个。另一种方法是确保未将逻辑运算符应用于多元素数组

什么是折叠样本集索引i
(对于
s的典型值


看起来像list
。index
不适用于数组元素。为了计算这个索引,Python将
s
集合中的每个元素进行比较。当我们比较一个列表和另一个列表时,
[1,2]==[3,4]
,我们得到一个简单的布尔值,
False
。但是当我们比较一个数组和另一个数组时,我们得到另一个数组:
np.array([1,2])==np.array([3,4])
array([False,False],dtype=bool)
。这就是产生歧义的地方

进行相同理解的更好方法(没有此
.index
)是:


这是可行的,但我仍然好奇为什么我会得到这个错误。这是可行的,但我仍然好奇为什么我会从python文档()fold_sample_集合中得到这个错误。index(s)应该是列表fold_sample_集合中s的索引。在进一步的测试中,我发现
.index
不适用于数组。请参阅我的编辑。从python文档()fold_sample_集合。index(s)应该是列表fold_sample_集合中s的索引。在进一步的测试中,我发现
.index
不适用于数组。查看我的编辑。