new_arr = arr[1:-3, 4:-2] = arr1
глупость, это так не работает. arr = np.ones((10,10), dtype = np.int8)
new_arr = arr.copy()
new_arr[0, :] = 0
new_arr[:, :4] = 0
new_arr[:, -2:] = 0
new_arr[-3:, :] = 0
print(new_arr)
Или если хочешь короче я исходил из твоего кода, то можно вот так.new_arr = np.zeros((10, 10))
new_arr[1:7, 4:-2] = 1
Так короче, и правильнее но мы не много нарушаем условие задачи. Мы заполняем единицами выбранный срез. далее создал 2 бойца (боец 1 и боец 2) и присвоил им класс fighter
далее я бойцом 1 применил метод удар на бойца 2Это тебе так захотелось, в описании метода класса 'udar' об этом нет слова. Твой класс умеет бить только собственный экземпляр точнее имеет намерение ударить себя (так как атрибут здоровья не обновляется)
class fighter:
def __init__(self,name=None,hp=None,dmg=None,):
self.name = name
self.hp = hp
self.dmg = dmg
# def udar(self,hp,dmg):
# print("Наносит урон с руки")
# rep = self.hp - self.dmg
# return "Осталось здоровья: " + rep
def udar(self,other):
print(self.name + " наносит урон с руки" 'c уроном ' + str(self.dmg))
other.hp = other.hp - self.dmg
return "У " + other.name + " осталось здоровья: " + str(other.hp)
boec = fighter("вася",200,22)
boec2 = fighter("bob",100,19)
boec.udar(boec2)
if a == b:
print("Костии стали равны с " , c)
print("Костии стали равны с " , с)
она на русской (другая переменная которой нет).input("Нажмите ентер для выхода")
не имеет никакого смысла. df = pd.DataFrame({
'A':[np.random.randint(1,100,20) for i in range(5)],
})
result = (
df.assign(
three_largest = lambda x: x['A'].apply(lambda x: pd.Series(x).nlargest(3).tolist()),
three_largest_index = lambda x: x['A'].apply(lambda x: pd.Series(x).nlargest(3).index.tolist())
)
)
result[['one','two','three']] = pd.DataFrame(result['three_largest_index'].tolist(),index=result.index)
result
Как видишь все в разных вариациях, как удобно. df = pd.DataFrame({
'A':[[5,6,24,3],[23,11,15],[3,100]],
'B':np.NaN
})
(
df.assign(
A_max =lambda x: x['A'].apply(max),
B_indexmax =lambda x: x['A'].apply(lambda x: pd.Series(x).idxmax()),
)
)