Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

семестр 1 / lab12

.py
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
3.03 Кб
Скачать
import os
clear = lambda: os.system('cls')
clear()
import numpy as np
import random
import math

#Task 6
def arrout(array):
s = ""
arraynp = np.array(array)
l = arraynp.size
columnindex = 5
rowindex = math.ceil(l / columnindex)
arraynp.shape = (rowindex, columnindex)
cycleindex = 0
if rowindex < 5:
cycleindex = rowindex
elif rowindex >= 5:
cycleindex = 5

for i in range(0, (5*28)-1):
s += chr(0x2550)
print(chr(0x2554)+s+chr(0x2557))

for i in range(0, cycleindex):
int(i)
if i < 9:
print(chr(0x2551), "0"+str(i+1)+"x1:", '%.17f' %arraynp[i][0], '|', "0"+str(i+1)+"x2:", '%.17f' %arraynp[i][1], '|', \
"0"+str(i+1)+"x3:", '%.17f' %arraynp[i][2], '|', "0"+str(i+1)+"x4:", '%.17f' %arraynp[i][3], '|', \
"0"+str(i+1)+"x5:", '%.17f' %arraynp[i][4], chr(0x2551))
elif i >= 10:
print(chr(0x2551), str(i+1)+"x1:", '%.17f' %arraynp[i][0], '|', str(i+1)+"x2:", '%.17f' %arraynp[i][1], '|', \
str(i+1)+"x3:", '%.17f' %arraynp[i][2], '|', str(i+1)+"x4:", '%.17f' %arraynp[i][3], '|', \
str(i+1)+"x5:", '%.17f' %arraynp[i][4], chr(0x2551))

print(chr(0x255A)+s+chr(0x255D), chr(10))

#Input data
random.seed(507)
N = [20, 40, 60, 80, 100]
M = [10, 20, 30, 40, 50]
seq = []

for i in range(0,5):
int(i)
for j in range(0,5):
int(j)
seq.append([[random.random() for _ in range(M[j])] for _ in range(N[i])])

#Task 2: converting to numpy
seqnp = []
for i in range(0,25):
int(i)
seqnp.append(np.array(seq[i]))

#Task 3: min and max of each array
seqmx = []
seqmn = []
for i in range(0,25):
int(i)
seqmx.append(np.max(seqnp[i]))
seqmn.append(np.min(seqnp[i]))

#Task 4.1: cos of each element in 20x10
seq1cos = np.cos(seqnp[0])

#Task 4.2: min of each column in 20x10
seq1mn = np.min(seqnp[0],0)

#Task 4.3: max of each row in 20x10
seq1mx = np.max(seqnp[0],1)

#Task 4.4: center sum
seq1centsum = 0
for i in range(9,11):
int(i)
for j in range(4,6):
int(j)
seq1centsum += seqnp[0][i][j]

#Task 4.5: elements replacement
tmp1 = seqnp[0][0][0]
tmp2 = seqnp[0][0][-1]
tmp3 = seqnp[0][-1][-1]
tmp4 = seqnp[0][-1][0]
seqnp[0][0][-1] = tmp1
seqnp[0][-1][-1] = tmp2
seqnp[0][-1][0] = tmp3
seqnp[0][0][0] = tmp4

#Task 5: 40x20 -> 80x10 -> mul
seqnp[6].shape = (80,10)
seqmul = seqnp[6] * seqnp[15]

#Task 6: task 4 - task 5 results output
print("Task 4.1 result")
arrout(seq1cos)
print("Task 4.2 result")
arrout(seq1mn)
print("Task 4.3 result")
arrout(seq1mx)
print("Task 4.4 result")
print("Sum of central elements is:", seq1centsum, chr(10))
print("Task 4.5 result")
print(f'Corner elements before replacement: \
{chr(10)}0x0 = {tmp1} \
{chr(10)}0x10 = {tmp2} \
{chr(10)}20x10 = {tmp3} \
{chr(10)}20x0 = {tmp4} {chr(10)}')
print(f'Corner elements after replacement: \
{chr(10)}0x0 = {seqnp[0][0][0]} \
{chr(10)}0x10 = {seqnp[0][0][-1]} \
{chr(10)}20x10 = {seqnp[0][-1][-1]} \
{chr(10)}20x0 = {seqnp[0][-1][0]} {chr(10)}')
print("Task 5 result")
arrout(seqmul)
Соседние файлы в папке семестр 1