Álgebra Linear Básica com NumPy
Álgebra linear é um ramo fundamental da matemática que desempenha um papel crucial em diversas áreas, incluindo aprendizado de máquina, aprendizado profundo e análise de dados.
Vetores e Matrizes
Em álgebra linear, um vetor é um conjunto ordenado de valores. Arrays 1D do NumPy podem representar vetores de forma eficiente. Uma matriz é um array bidimensional de números, que pode ser representado por um array 2D no NumPy.
Já abordamos a adição e subtração de vetores e matrizes, bem como a multiplicação por escalar, no capítulo "Operações Matemáticas Básicas". Aqui, o foco será em outras operações.
Transposição
Transposição é uma operação que inverte uma matriz sobre sua diagonal. Em outras palavras, converte as linhas da matriz em colunas e as colunas em linhas.
Você pode transpor uma matriz utilizando o atributo .T de um array NumPy:
12345import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
Produto Escalar
O produto escalar é talvez a operação de álgebra linear mais utilizada em machine learning e deep learning. O produto escalar de dois vetores (que devem ter o mesmo número de elementos) é a soma de seus produtos elemento a elemento. O resultado é um escalar:
Multiplicação de Matrizes
A multiplicação de matrizes é definida apenas se o número de colunas da primeira matriz for igual ao número de linhas da segunda matriz. A matriz resultante terá o mesmo número de linhas da primeira matriz e o mesmo número de colunas da segunda matriz.
Como pode ser observado, cada elemento da matriz resultante é o produto escalar de dois vetores. O número da linha do elemento corresponde ao número do vetor linha na primeira matriz, e o número da coluna corresponde ao número do vetor coluna na segunda matriz.
O número de colunas na primeira matriz deve ser igual ao número de linhas na segunda matriz, pois o produto escalar exige que os dois vetores tenham o mesmo número de elementos.
Produto Escalar e Multiplicação de Matrizes no NumPy
O NumPy fornece a função dot() tanto para o produto escalar quanto para a multiplicação de matrizes. Essa função recebe dois arrays como argumentos.
No entanto, também é possível utilizar o operador @ entre dois arrays para obter os mesmos resultados.
12345678910111213import numpy as np vector_1 = np.array([1, 2, 3]) vector_2 = np.array([4, 5, 6]) # Dot product using the dot() function print(np.dot(vector_1, vector_2)) # Dot product using the @ operator print(vector_1 @ vector_2) matrix_1 = np.array([[1, 2, 3], [4, 5, 6]]) matrix_2 = np.array([[7, 10], [8, 11], [9, 12]]) # Matrix multiplication using the dot() function print(np.dot(matrix_1, matrix_2)) # Matrix multiplication using the @ operator print(matrix_1 @ matrix_2)
Se o argumento à direita na multiplicação de matrizes for um vetor (array 1D), o NumPy o trata como uma matriz em que a última dimensão é 1. Por exemplo, ao multiplicar uma matriz 6x4 por um vetor com 4 elementos, o vetor é considerado uma matriz 4x1.
Se o argumento à esquerda na multiplicação de matrizes for um vetor, o NumPy o trata como uma matriz em que a primeira dimensão é 1. Por exemplo, ao multiplicar um vetor com 4 elementos por uma matriz 4x6, o vetor é tratado como uma matriz 1x4.
A imagem abaixo mostra a estrutura dos arrays exam_scores e coefficients usados na tarefa:
Swipe to start coding
Você está trabalhando com o array exam_scores, que contém notas simuladas de três alunos (cada linha representa um aluno) em três disciplinas (cada coluna representa uma disciplina).
- Multiplique as notas de cada disciplina pelo respectivo coeficiente.
- Some as notas resultantes de cada aluno para calcular sua nota final.
- Calcule o produto escalar entre
exam_scoresecoefficients.
Isso fornecerá as notas finais de todos os alunos com base nas contribuições ponderadas de suas notas por disciplina.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.7
Álgebra Linear Básica com NumPy
Deslize para mostrar o menu
Álgebra linear é um ramo fundamental da matemática que desempenha um papel crucial em diversas áreas, incluindo aprendizado de máquina, aprendizado profundo e análise de dados.
Vetores e Matrizes
Em álgebra linear, um vetor é um conjunto ordenado de valores. Arrays 1D do NumPy podem representar vetores de forma eficiente. Uma matriz é um array bidimensional de números, que pode ser representado por um array 2D no NumPy.
Já abordamos a adição e subtração de vetores e matrizes, bem como a multiplicação por escalar, no capítulo "Operações Matemáticas Básicas". Aqui, o foco será em outras operações.
Transposição
Transposição é uma operação que inverte uma matriz sobre sua diagonal. Em outras palavras, converte as linhas da matriz em colunas e as colunas em linhas.
Você pode transpor uma matriz utilizando o atributo .T de um array NumPy:
12345import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
Produto Escalar
O produto escalar é talvez a operação de álgebra linear mais utilizada em machine learning e deep learning. O produto escalar de dois vetores (que devem ter o mesmo número de elementos) é a soma de seus produtos elemento a elemento. O resultado é um escalar:
Multiplicação de Matrizes
A multiplicação de matrizes é definida apenas se o número de colunas da primeira matriz for igual ao número de linhas da segunda matriz. A matriz resultante terá o mesmo número de linhas da primeira matriz e o mesmo número de colunas da segunda matriz.
Como pode ser observado, cada elemento da matriz resultante é o produto escalar de dois vetores. O número da linha do elemento corresponde ao número do vetor linha na primeira matriz, e o número da coluna corresponde ao número do vetor coluna na segunda matriz.
O número de colunas na primeira matriz deve ser igual ao número de linhas na segunda matriz, pois o produto escalar exige que os dois vetores tenham o mesmo número de elementos.
Produto Escalar e Multiplicação de Matrizes no NumPy
O NumPy fornece a função dot() tanto para o produto escalar quanto para a multiplicação de matrizes. Essa função recebe dois arrays como argumentos.
No entanto, também é possível utilizar o operador @ entre dois arrays para obter os mesmos resultados.
12345678910111213import numpy as np vector_1 = np.array([1, 2, 3]) vector_2 = np.array([4, 5, 6]) # Dot product using the dot() function print(np.dot(vector_1, vector_2)) # Dot product using the @ operator print(vector_1 @ vector_2) matrix_1 = np.array([[1, 2, 3], [4, 5, 6]]) matrix_2 = np.array([[7, 10], [8, 11], [9, 12]]) # Matrix multiplication using the dot() function print(np.dot(matrix_1, matrix_2)) # Matrix multiplication using the @ operator print(matrix_1 @ matrix_2)
Se o argumento à direita na multiplicação de matrizes for um vetor (array 1D), o NumPy o trata como uma matriz em que a última dimensão é 1. Por exemplo, ao multiplicar uma matriz 6x4 por um vetor com 4 elementos, o vetor é considerado uma matriz 4x1.
Se o argumento à esquerda na multiplicação de matrizes for um vetor, o NumPy o trata como uma matriz em que a primeira dimensão é 1. Por exemplo, ao multiplicar um vetor com 4 elementos por uma matriz 4x6, o vetor é tratado como uma matriz 1x4.
A imagem abaixo mostra a estrutura dos arrays exam_scores e coefficients usados na tarefa:
Swipe to start coding
Você está trabalhando com o array exam_scores, que contém notas simuladas de três alunos (cada linha representa um aluno) em três disciplinas (cada coluna representa uma disciplina).
- Multiplique as notas de cada disciplina pelo respectivo coeficiente.
- Some as notas resultantes de cada aluno para calcular sua nota final.
- Calcule o produto escalar entre
exam_scoresecoefficients.
Isso fornecerá as notas finais de todos os alunos com base nas contribuições ponderadas de suas notas por disciplina.
Solução
Obrigado pelo seu feedback!
single