在python中,如何打印具有False值的元素? 这是我的代码:
import numpy as np
height = [1.65, 1.75, 1.71, 1.72, 1.69, 1.68, 1.67, 1.70]
weight = [60, 65, 88, 59, 78, 77, 79, 72]
# Calculate and print all the BMIs
bmi = np.array(weight) / np.array(height)
print("The values of all BMIs:", bmi)
# Create an array with BMI status (True/False) less than 40
true_false_bmi = np.array(bmi) < 40
# Print out the whole true_false_bmi array as True/False
print("Status of all BMIs (Criteria -> Less than 40):", true_false_bmi)
# Print out BMIs less than 40
print("BMIs LESS than 40:", bmi[true_false_bmi])
到目前为止它工作正常。 现在我想打印40以上的BMI。我尝试使用以下代码,但它无法正常工作:
# Print out BMIs of all baseball players whose BMI is above 40 i.e., False elements of the true_false_bmi array.
print("BMIs ABOVE 40:", bmi[!true_false_bmi])
print("BMIs ABOVE 40:", bmi[not true_false_bmi])
答案 0 :(得分:2)
您可以在~
中使用numpy
运算符进行否定。
print("BMIs ABOVE 40:", bmi[~true_false_bmi])
答案 1 :(得分:1)
一种方法是使用where
:
print(bmi[np.where(bmi < 40)])
答案 2 :(得分:1)
在这种情况下,您可以使用列表推导。非常简单的解决方案,我想......
false_bmi = [not value for value in true_false_bmi]
print(bmi[false_bmi])
答案 3 :(得分:0)
尝试使用过滤器:
print(filter(lambda x: x>40, bmi))
编辑:
或者如果它是一个numpy数组,你可以
print(bmi[bmi>40])