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

семестр 1 / lab12

.py
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
3 Кб
Скачать
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