2 tane soru buldum matrislere çalışırken. Konusunda da eksiğim biraz ama bu sorulardan hiçbir şey anlamadım. Kimse sormadan söyleyim: okul dönemim bitti, derste verilen bir şey değil, sadece finale çalışıyorum ve hayır soru hakkında hiçbir şey yapamadım, anlatılırsa anlayabilecek kadar python da biliyorum.
Sorular şu şekilde:
İstedikleriniz numpy ile yapılabilir.
import numpy as np
matrix = np.array([[1, 0, 3],
[2, 0, 0],
[0, 0, 5]])
def arindir(matrix):
# gerekli verileri saklamak için sözlük kullandım.
matrix_data = {"values": [], "index": [], "shape": []}
matrix_data.update({"values": matrix[matrix != 0]})
# matrix_data["values"] = [1 3 2 5] olacaktır.
matrix_data.update({"index": np.where(matrix != 0)})
# matrix_data["index"] = ([0, 0, 1, 2], [0, 2, 0, 2]) şeklinde olacaktır.
# ilk liste row numaraları, ikinci liste ise column numaralarıdır.
matrix_data.update({"shape": matrix.shape})
# matrix_data["shape"] = (3, 3) olacaktır.
return matrix_data
def tersine_cevir(matrix_data):
matrix = np.zeros(shape=matrix_data["shape"], dtype=int)
# matrix = [[0 0 0], [0 0 0], [0 0 0]] şeklinde olacaktır.
matrix[matrix_data["index"]] = matrix_data["values"]
# matrix = [[1 0 3], [2 0 0], [0 0 5]] olacaktır.
return matrix
matrix_data = arindir(matrix)
arindirilmis = matrix_data["values"]
print(f"Arındırılmış:\n {arindirilmis}")
tersine_cevrilmis = tersine_cevir(matrix_data)
print(f"Tersine çevrilmiş:\n {tersine_cevrilmis}")
arindir
fonksiyonunun return ettiği şey sizin istediğiniz ile tam uyuşmuyor sanırım. Dilerseniz global değişken kullanarak istenen duruma getirebilirsiniz.
2 Beğeni
Çok teşekkürler. Deneyip anlamaya çalışacağım
1 Beğeni
numpy kütüphanesini pip aracılığıyla kurmanız gerekiyor.
Spyder bünyesinde numpy kütüphanesini de barındırdığı için orada sıkıntı yaşamıyorsunuz.
Fakat Visual Studio Code için sizin indirmeniz lazım.
CMD’yi çalıştırıp,
pip3 install numpy
yazıp Enter
tuşuna basmalısınız.
1 Beğeni
Çok Çok teşekkür ederim
1 Beğeni