我有一个代码来检测两种颜色--绿色和蓝色。我想检查是否检测到绿色以打印按摩,以及是否检测到蓝色以打印另一条消息。
以下是守则:
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(1):
# Take each frame
_, frame = cap.read()
# Convert BGR to HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
# define range of blue color in HSV
我试图在我从文本文件中读取的569x462ndarray中查找小于200的值。我想使用numpy.where来查找这些值...我已经尝试了以下代码:
import numpy as np
#Load in text file from Sebago
sebago=np.loadtxt('sebagoWatershedElv.txt',skiprows=6)
#Find where elevation is less than 200
lowElv=np.where(sebago[:]<200)
但是输出显示的值小于200,而有些值大于200...
我有一份清单上的清单如下所示:
c = [[1,0,1], [2,3,1], [0,0,0]]
我做了一个函数toss_non_G2(potential_list)如下所示:
def toss_non_G2(potential_list):
for list in potential_list:
if any(x not in [0,1] for x in list):
potential_list.remove(list)
return potential_list
我试过了:
print(toss_non_G2(c))
>&g
Python新手在这里。给定2Dnumpy数组的列表(mylist)和引用2Dnumpy数组(refarr),我正在寻找一种方法来创建一个数组(percentage_array),其中每个点(i,j)是mylist数组中大于refarr中i,j的相应(i,j)点的百分比。我可以通过循环遍历数组中的所有点来做到这一点,并且通过列表,例如:
percentage_array = numpy.empty(arr.shape)
for i in range(arr.shape[0]):
for j in range(arr.shape[1]):
t = 0
f
我试图扫描数组中的值,并根据结果采取行动。然而,当我仔细查看代码正在做什么时,我注意到我的逻辑状态是病态的。
我将用下面的例子来说明我的意思:
#importing numpy
import numpy as np
#creating a test array
a = np.zeros((3,3))
#searching items bigger than 1 in 'a'
index = np.where(a > 1)
我原以为我的索引会返回一个空列表。实际上,它返回一个tuple对象,如:
index
Out[5]: (array([], dtype=int64)
我正在迭代一个NumPy (nd)数组的OpenCV行。我想删除所有8度垂直的线。我意识到numpy数组是不可变的,我在代码中所做的是不对的,但它展示了我所要做的事情的想法;
index = 0
for line in self.lines[0]:
if (line[1]*180)/np.pi > 8:
self.lines[0] = np.delete(self.lines[0], index, axis=0)
index+=1
如何删除这些NumPy数组索引?
谢谢!
我执行以下操作:
from numpy import genfromtxt
x = genfromtxt('foo.csv',delimiter=',',usecols=(0,1))
y = genfromtxt('foo.csv',delimiter=',',usecols=(2),dtype=str)
然后我进入:
x[y=='y1Out',0] # assume the set of "y" is 'y1Out' and 'y2Out'
该命令打印"
我有一个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_
我有两个numpy数组a,b形状相同,b有几个零。我希望将输出数组设置为a / b,其中b不为零,否则设置为a。下面的方法可以工作,但会产生一个警告,因为a / b是先在所有地方计算的。 import numpy
a = numpy.random.rand(4, 5)
b = numpy.random.rand(4, 5)
b[b < 0.3] = 0.0
A = numpy.where(b > 0.0, a / b, a) /tmp/l.py:7: RuntimeWarning: divide by zero encountered in true_divide
A =
换句话说,numpy支持“筛选”吗?
我有两个数组:
a = np.array([1, 0, 2, 3, 0, 4])
b = np.array([1, 0, 0, 0, 0, 6])
我想要的是返回一个新的数组c,它包含基于b掩码的a的原始值。
c = a[b > 0]
>> c
np.array([1, 4])
# but what I want is:
# np.array([1, 0, 0, 0, 0, 4])
我可以通过做一个清单理解来解决这个问题:
c = [a[i] if b[i] > 0 else 0 for i in range(len(a))]
我
想象一下我有一份清单
l = [12,13,14,10,13,14]
我希望找到所有项上大于10的索引(在本例中,它是与13对应的索引4,作为该属性的第一次出现)。
也许基于,如何在Python中做到最好呢?
我的想法是:为这个[a>10 for a in l] (由True和False作为序列组成)创建一个bool列表,或者l>10以某种方式使用numpy生成一个数组
我有一个值的NumPy数组。我想计算这些值中有多少在特定的范围内,比如x<100和x>25。我读过关于计数器的文章,但它似乎只适用于指定值,而不是值范围。我已经搜索过了,但是没有发现任何关于我的具体问题的东西。如果有人能向我指出适当的文件,我将不胜感激。谢谢
我试过这个
X = array(X)
for X in range(25, 100):
print(X)
但它只是给了我25到99之间的数字。
编辑我正在使用的数据是由另一个程序创建的。然后,我使用脚本读取数据并将其存储为列表。然后,我使用数组(R)将列表提交给数组。
编辑
运行结果
>>
我试图从一个2D列表中访问一个索引列表,其中包含以下错误。基本上,我希望找到数据在两个值之间的位置,并将“权重”数组设置为1.0以供以后的计算使用。
#data = numpy array of size (141,141)
weights = np.zeros([141,141])
ind = [x for x,y in enumerate(data) if y>40. and y<50.]
weights[ind] = 1.0
ValueError:包含多个元素的数组的真值是不明确的。使用a.any()或a.all()
我试过使用np.extract(),但这不能给出索引.