Transcrições
1. Introdução: Oi, pessoal. Bem-vindo ao
Discourse on Mastering Nampi, uma das bibliotecas mais essenciais
em Python Se você estiver interessado em ciência de
dados ou aprendizado
de máquina
, o Nampi é seu ponto de
partida É a base para tantas
bibliotecas Python poderosas, como Bandas, modo Leap e psyched learn, que são amplamente usadas
no NumPi é a espinha dorsal da manipulação de dados e
da computação É incrivelmente rápido e
eficiente para lidar com matrizes, realizar
operações matemáticas e manipular dados em Se você está
calculando estatísticas, criando
modelos de aprendizado de máquina ou criando simulações, Numpi também será sua escolha Então, quem precisa do Numpi? Se você está buscando funções
como cientista de dados, engenheiro de aprendizado
de máquina
ou analista de dados, essas bibliotecas devem
ter seu Compreender o Nampi lhe
dará as habilidades para lidar com conjuntos de dados, processar grandes quantidades de dados e construir uma base sólida
para ferramentas mais avançadas Este curso foi desenvolvido
para iniciantes, então não se preocupe se você está
apenas começando. Tudo o que você precisa é uma compreensão básica
do Python e garantir que o notebook ou ID Jupiter,
como Pycharm ou como Pycharm ou Vou guiá-lo passo a
passo em tudo. Neste curso, você aprenderá como criar e
manipular raios, realizar operações matemáticas
e estatísticas básicas e dominar as principais técnicas para trabalhar com
dados de forma eficiente Ao final deste curso, você terá uma sólida
compreensão do Napi e a confiança para usá-lo
em projetos do mundo real Ainda mais importante,
essas habilidades servirão como uma porta de entrada para dominar a análise de dados e outras bibliotecas avançadas de
Python Ao longo deste curso, eu
recomendo fortemente que você adote uma abordagem
ativa para o aprendizado. À medida que avançamos em cada aula, fique à vontade para postar o vídeo e praticar o
código você mesmo em seu caderno de Júpiter
ou Pi harm or viscod Tente reescrever o código que você vê na tela e
fazer experiências com ele Teste como cada função funciona. Altere alguns valores e veja
como os resultados são diferentes. Essa prática
é fundamental para realmente entender como o Numpy funciona e se
sentir confortável com ele Lembre-se de que a melhor maneira de
aprender programação é fazendo. Então, não assista o tempo
todo comigo. Isso não apenas ajudará
você a criar confiança, mas também garantirá que você realmente
compreenda o conceito que abordamos Então, vamos mergulhar e começar a
desenvolver essas habilidades.
2. Instalação do Python: E primeiro, vamos verificar se Python já está
instalado no seu sistema Se você tiver o Windows, poderá fazer isso
pressionando Wind plus R, digitando CMD
e pressionando Enter Na janela do prompt de comando, digite o seguinte
comando e pressione Enter. E aqui estamos,
podemos ver nosso Python. No macOS e no Linux, também
abrimos a janela do terminal digitamos o seguinte comando
e pressionamos Enter Não preste atenção em todas
essas versões do Python. Falaremos sobre isso mais tarde.
Como podemos ver, eu não tenho a versão Python do
comando,
mas tenho a versão três do Command
Python Os comandos Python version e
Python three version
são usados para verificar a versão do interpretador
Python instalado Python Versão do Python, o comando tradicionalmente usado para verificar a versão
do Python dois, enquanto Python três é usada
especificamente para verificar a versão do interpretador do tradicionalmente usado para verificar a versão
do Python dois, enquanto a versão do
Python três é usada
especificamente para verificar a versão do interpretador do
Python três. Normalmente, o Python 2 era
usado em sistemas mais antigos. Se preferir, você pode ajustar configuração do
sistema para
fazer com que o Python aponte para o
Python três Mas eu prefiro continuar com o comando Python three porque
ele é comumente Se você não tiver nenhum Python
em seu sistema operacional, acessaremos o site
python.org e seguiremos as site
python.org Aqui você escolhe seu sistema
operacional e escolhe a versão
do Python que você precisa Eu trabalho no macOS e no Linux, mas instalar o Python no Windows não é
muito mais difícil Você baixa a
versão do Python, abre
o arquivo de download e segue as instruções de
instalação Aqui podemos baixar o
Python para Linux. Se formos ao Python, guia do usuário de empacotamento do
Python ,
e aqui eu escolho os
tutoriais e, em seguida, escolho tutoriais Podemos ver muitas informações sobre como verificar a versão do Python e também como instalar Python em E aqui você pode notar que podemos instalar o Python de
maneiras diferentes Por exemplo, aqui podemos ver
os comandos que podemos usar para instalar o Python em um
Bunto ou, se usarmos o macOS,
podemos usar o podemos Homebrew é um gerenciador de pacotes. Você pode ler mais em seu site. Com esse gerenciador de pacotes, podemos instalar o Python
usando esse comando Mas qual a diferença?
Bem, em breve, a pasta, Homebrew e o instalador oficial usarão as diferentes pastas
para instalação Também atualizando. O Homebrew atualiza
facilmente o Python para a versão mais recente com um único
comando Brew upgrade Homebrew também
gerencia dependências e
limpa automaticamente as versões antigas. Enquanto
instalador oficial para atualizar, você precisa
baixar manualmente a nova versão do site e passar pelo
processo de instalação novamente. A instalação por meio
do instalador oficial é mais independente, o que pode ser útil
em determinados cenários, mas pode tornar o gerenciamento de
dependências e ferramentas adicionais
mais complicado E geralmente adiciona ícones de
aplicativos na pasta de aplicativos. Se eu quiser ver todas as versões do
Python, instalei com o comando
Brew install Python, posso usar o Command Brew
List Python imediatamente todas as
pastas
e todas as versões do Python que tenho pastas
e todas Além disso, quero observar
que a instalação do uni com Home Brew é
simples com um único comando Brew
Uni Install Python, que remove completamente versão
instalada
do Embora a
desinstalação oficial do instalador seja mais complexa e exija a remoção manual de
arquivos de vários diretórios Quanto a mim, o Homebrew é mais conveniente para
desenvolvedores e para aqueles que trabalham
frequentemente com Python e outras ferramentas por meio instalador oficial pode ser
adequado para usuários que preferem interferência
mínima no sistema e precisam instalar o Python
uma vez para necessidades específicas, e não planejam
atualizar ou gerenciar
várias versões com frequência atualizar ou gerenciar
várias versões A mesma coisa se usarmos
Linux, Ubuntu, qualquer coisa,
podemos usar o Sudo Ogat para instalar o Python ou podemos instalar o
Python ou podemos instalar o
Python No primeiro caso, esse é o método mais simples de
instalar o Python, mas você só pode instalar
versões do Python que estejam disponíveis nos Instalando a partir do código-fonte, você pode usar qualquer versão do Python,
incluindo as versões mais recentes Agora que entendemos
como instalar o Python e a diferença
entre os métodos de
instalação,
vamos continuar aprendendo o
Python em Eu abro o terminal e digito
o comando Python. Um dos recursos exclusivos do Python
é o modo interativo, que permite executar código e
ver imediatamente os resultados Isso é possível graças
ao interpretador Python, um programa que lê e
executa Quando você instala o Python
em seu computador, ele inclui um interpretador
interativo conhecido como apple
redeValvePreent Ele permite que você insira o código uma linha por vez e
veja o resultado instantaneamente. Ao usar o modo interativo, você pode experimentar rapidamente diferentes trechos de código e
ver o resultado Para sair do modo interativo, use o comando exit. Bem, vimos o
modo interativo no terminal, mas também temos
várias ferramentas que nos
ajudam a escrever código com
mais eficiência. Vamos dar uma olhada neles.
3. Instalação de IDE: Hoje, veremos
as ferramentas que tornam a codificação mais fácil e
eficiente Três dos editores de código mais
usados são PyCharm, Visual Studio code
e Jupiter Qual deles você
escolherá, depende de você. O primeiro, Pycharm. Existem várias opções
comunitárias e profissionais. Essa ideia
foi projetada especificamente para Python, mas você também pode usar
outras É como uma caixa de ferramentas
para desenvolvedores de Python. Você pode baixar o
BiHARM Community. É totalmente gratuito
e, para ser sincero, é o suficiente pela primeira vez. O processo de instalação
não leva muito tempo. Fazemos o download do arquivo e
seguimos as instruções. Existem muitos recursos,
como ferramentas de depuração, gerenciamento de
projetos e sugestões gerenciamento de
projetos Muito útil. É melhor para projetos
maiores,
nos quais você precisa manter tudo
organizado e eficiente. Então, temos o código do Visual Studio. É um editor de
código leve que suporta muitas
linguagens de programação, incluindo Python Depois de baixar o arquivo, abra-o clicando duas vezes nele. Isso extrairá o aplicativo de código do Visual
Studio. Arraste o aplicativo Visual Studio
code para a pasta do aplicativo e aqui estamos, isso
instala o VS code no seu Mac Aqui você pode criar a pasta
Arquivo Abrir
ou visualizar
arquivos abertos recentemente, ou visualizar
arquivos abertos recentemente aqui podemos
ver várias guias. Nenhuma pasta aberta. A guia aparece quando você não
abre uma pasta para o espaço de trabalho Ele solicita que você abra uma pasta para começar a
trabalhar em um projeto Depois de abrir uma pasta, essa guia desaparece e os arquivos na
pasta são exibidos guia Abrir editor mostra uma lista de todos os arquivos
que você abriu atualmente no editor. Aqui podemos criar um novo
arquivo do zero. A guia de tópicos fornece uma visão estruturada,
como funções, variáveis e classes no arquivo aberto
no momento Ele ajuda você a
navegar rapidamente pelo
código pulando para
diferentes partes do arquivo Se quiser, você também
pode ocultar essas guias. É perfeito se você estiver
trabalhando em diferentes tipos de projeto e quiser um editor flexível
e completo. É muito fácil de instalar
e muito fácil de usar. Então temos o caderno Jubi. É uma ferramenta baseada na web. Você pode usá-lo para pesquisa e
ciência de dados. Ele permite que você escreva e
execute código em pequenos pedaços, e você pode
ver imediatamente os resultados Parece um modo interativo, exceto que essa ferramenta é
ótima para criar documentos
interativos
que combinam código, texto e visualização Notebook Jupiter, você pode
instalar maneiras diferentes. Instalando
o Jupiter usando o Anaconda e Conda ou você tem uma alternativa, você pode instalar o Jupiter com gerenciador de pacotes
PIP se
optar por usar o Anaconda,
para que ele instale o
Python e o Jupiter Notebook
e outros endereços de tag comumente usados para computação e o
Conda ou você tem uma alternativa,
você pode instalar o Jupiter com o gerenciador de pacotes
PIP se
optar por usar o Anaconda,
para que ele instale o
Python e o Jupiter Notebook
e outros endereços de tag comumente usados para computação e ciência de dados específicas. o
Conda ou você tem uma alternativa,
você pode instalar o Jupiter com o gerenciador de pacotes
PIP se
optar por usar o Anaconda,
para que ele instale o
Python e o Jupiter Notebook
e outros endereços de tag comumente usados para computação e ciência de dados específicas. Então você tem tudo em um. Mas, para começar, você pode gerenciar com o notebook Jupiter
instalando-o usando o PIP Você pode usar o que quiser. Depende de você neste curso, vou usar o código do Visual Studio. Bem, depois de toda
essa preparação, vamos começar a escrever o código.
Nos vemos na próxima aula.
4. NumPy para iniciantes: o que é e por que é essencial: Olá, pessoal. Hoje
discutiremos uma biblioteca fundamental para
especialistas que trabalham com dados. Nampi é uma biblioteca popular para
computação científica em Python Ele serve como base para muitas bibliotecas importantes em Python usadas para
processamento e análise de dados Essas bibliotecas incluem o Pandas, que é usado para trabalhar com dados
tabulares e resolver tarefas de análise de
dados, bem
como o MD Blot
Leap e o Seaborn,
que são usados para visualização e que são usados Talvez você já esteja familiarizado
com essas bibliotecas. Caso contrário, recomendo que você se
familiarize com eles. Tutoriais que você pode
encontrar no meu perfil. Sci Pi, outra biblioteca importante fornece funções para computação
científica, como otimização, aproximação,
integração Psyched Learn e muitas
outras bibliotecas
no ecossistema Python
dependem muito do Nampi como NumPi serve como um
alicerce para muitas
bibliotecas de computação científica e análise de
dados em Python , fornecendo operações numéricas
eficientes , estruturas de dados
otimizadas para memória e integração perfeita com outras Essa biblioteca oferece
transmissão e visualizações eficientes, permitindo operações em matriz
sem criar novas cópias Isso reduz o uso de memória
e melhora o desempenho. Numbi fornece uma estrutura de dados
poderosa, matrizes que permitem a
representação de grandes matrizes e vetores junto com
um conjunto de funções para trabalhar eficientemente com um conjunto de funções para A principal vantagem
do NumPi está na velocidade de cálculo em comparação com as listas do Python Isso é obtido porque todos os
elementos da matriz Numpi têm o mesmo tipo de dados e
devido ao uso de armazenamento de memória
compacto e operações matemáticas
otimizadas Então, vamos passar às principais características
e benefícios do umpi incluem uma
vasta coleção de funções
matemáticas que
operam eficientemente em raios A capacidade de manipular grandes conjuntos de dados sem sobrecarga
excessiva de memória, criar suporte para
leitura e gravação dados de
matriz de e para
vários formatos de arquivo, suporte para realizar transformações
rápidas de falsificação,
que são cruciais para processamento de
sinais, processamento imagens e outras aplicações
científicas, além de recursos
poderosos de indexação e
fatiamento, poderosos de indexação e
fatiamento grandes conjuntos de dados sem sobrecarga
excessiva de memória,
criar suporte para
leitura e gravação de dados de
matriz de e para
vários formatos de arquivo,
suporte para realizar transformações
rápidas de falsificação,
que são cruciais para processamento de
sinais, processamento de
imagens e outras aplicações
científicas, além de recursos
poderosos de indexação e
fatiamento, permitindo eficiência
seleção e manipulação de
subconjuntos de matrizes. NumPi pode ser usado para
resolver uma ampla gama de tarefas, como operações
matemáticas, processamento de
sinais e imagens, simulação
científica, geração de
números aleatórios Sim, o Numpi fornece
funções para gerar números aleatórios
com várias distribuições Análise e manipulação de dados. Os raios NumPi podem ser usados para tarefas como
classificação, filtragem
e remodelagem de dados, que geralmente são
pré-requisitos para tarefas de análise de dados pré-requisitos tarefas como
classificação, filtragem
e remodelagem de dados,
que geralmente são
pré-requisitos para tarefas de análise de dados e aprendizado de máquina. Aprendizado de máquina
e aprendizado profundo. Numpi fornece a estrutura de dados
subjacente e as operações necessárias
para essas tarefas Nampi se integra perfeitamente a muitas outras bibliotecas de
computação científica em Python, como Pandas, Md Llod Leap e Sigi Learn,
facilitando um rico
ecossistema para análise de dados, visualização e facilitando um rico O Nampi se integra perfeitamente a
muitas outras bibliotecas de
computação científica em
Python, como Pandas,
Md Llod Leap e Sigi Learn,
facilitando um rico
ecossistema para análise de dados, visualização e aprendizado de máquina. Esta lista destaca a
versatilidade do Nampi e sua capacidade de abordar uma ampla gama de tarefas em computação
científica, análise de
dados, aprendizado de máquina e muito mais, tornando-o uma biblioteca fundamental
no Então, vamos prosseguir
com a instalação.
5. O que é um matriz? Diferentes maneiras de criar matrizes no NumPy: Primeiro, certifique-se de que o NAPA já
esteja instalado em
seu ambiente Python O que é um ambiente Python? Ele permite que você alterne entre várias versões do Python em diferentes ambientes
de trabalho sem erros ou conflitos É uma ferramenta muito útil
e eu recomendo fortemente usá-la. Você pode aprender como
funciona no meu vídeo bônus. Se você não sabe o que
é
um ambiente virtual ou como trabalhar
com ele, não se preocupe. Você não precisa disso agora. Você pode simplesmente abrir o terminal e trabalhar sem ativar um ambiente virtual
executando comandos diretamente
no terminal Como algumas outras bibliotecas podem instalar automaticamente o Numpi, você pode verificar se ele
já está presente executando o seguinte comando no prompt de
comando ou no terminal Mostre um sinal sonoro para Numpi. Se você receber uma resposta com o caminho especificado
para a biblioteca
, o numpi já estará instalado Caso contrário, para instalar o Numpi
, usamos o seguinte comando. Instale o Numpi por um sinal sonoro. Esse comando
baixará e instalará automaticamente o Numpi
do repositório Python Após a instalação bem-sucedida,
você pode usar o Numpi para cálculos numéricos
e trabalhar com É recomendável
atualizar periodicamente suas bibliotecas,
incluindo o Mupi, para obter novos recursos e
corrigir possíveis recaídas Para fazer isso, use o
seguinte comando,
peep Install, atualize o Numpi Vou executá-lo também, é
hora de eu atualizar também. Essa abordagem permitirá que
você sempre tenha as versões mais recentes do
Numpi para seus projetos Agora vamos
praticar e começar a nos
familiarizar com o elemento
principal
dessa biblioteca, a matriz de dados Uma matriz Numpi é a estrutura de dados
principal que distingue numpi das listas regulares do
Python Resumindo, é uma tabela de
elementos do mesmo tipo,
que pode ser números inteiros, flutuantes, valores
lógicos, cadeias As matrizes Numpi são
multidimensionais. Eles normalmente assumem a
forma de um vetor ou matriz, mas podem ter um
número arbitrário de dimensões O número de dimensões
e a forma de uma matriz são
definidos na criação, mas podem ser modificados posteriormente. Os elementos de uma matriz
são representados numericamente e armazenados de forma compacta e
otimizada na memória, garantindo alta velocidade
computacional No eixo numpi, ajude-nos a entender a direção na qual os dados
são organizados dentro de uma matriz Você pode pensar em um eixo como uma direção específica ao longo da
qual os valores são organizados. Cada matriz numérica tem uma
ou mais dimensões ou eixos, dependendo de quantos níveis
de organização ela tem Aqui está uma maneira simples
de pensar sobre isso. Uma matriz unidimensional, um vetor tem apenas um eixo. Esse eixo representa
a sequência de números na matriz. Imagine uma lista simples de números indo da
esquerda para a direita. Matriz bidimensional,
uma matriz tem dois eixos. Um eixo corre verticalmente de cima para baixo e representa
o número de linhas O outro eixo
corre horizontalmente, esquerda para a direita, e representa
o número de colunas Por exemplo, pense em uma
tabela em uma planilha. As linhas e colunas formam
os dois eixos dos dados. Ao trabalhar com dados
mais complexos, você pode ter três ou
mais dimensões em que eixos
adicionais representam diferentes níveis
de organização As matrizes Numpy são usadas em computação
específica, análise de
dados e aprendizado de máquina
porque armazenam e processam grandes quantidades de dados
numéricos Compreender o eixo
é importante porque muitas funções numpi aplicam operações ao longo de eixos específicos, facilitando a manipulação de dados Devido a essas propriedades, NumpiRays são amplamente usados
em computação específica, análise de
dados e aprendizado
de máquina, pois fornecem uma representação compacta e eficiente
de dados numéricos Agora vamos importar o
Numpi, é claro, vamos definir um alias Isso o torna mais conveniente. Em vez de escrever
o nome completo NPi, toda vez podemos simplesmente
usar as duas letras NP Usar NP como alias economiza tempo e torna
o código mais Agora vamos prosseguir com a
criação da matriz Umpire. Vamos considerar as formas básicas de gerar matrizes
para trabalhos futuros Começaremos criando
matrizes a partir de uma lista do Python. O que são listas de Python? As listas Python são um dos tipos de
dados de construção que permitem armazenar sequências
ou listas de Por exemplo, vamos criar uma lista A, contendo
somente números. No entanto, você deve
entender que a lista pode conter
elementos de diferentes tipos, números, sequências de caracteres e outras
listas, podem ser objetos Para demonstrar isso, também
criei uma lista B que contém tipos de dados
mistos. Principais recursos das listas em Python. As listas são ordenadas. Cada elemento tem uma posição
de índice específica na lista. Esse tipo de dados também é dinâmico. Seu comprimento e número de elementos podem mudar durante a execução
do programa. Os elementos são acessados por índice. A indexação começa do zero. Por exemplo, para acessar
o primeiro elemento da Lista A, usamos A zero na notação de
quebra Isso recupera o
primeiro elemento, que está no índice zero As listas também podem ser
iteradas usando loops, mas discutiremos isso com
mais detalhes em um
vídeo futuro sobre Python A diferença entre listas
Python e Nampirays é que as listas são convenientes para armazenar
dados No entanto, as matrizes Numpy são projetadas para armazenar apenas
um único tipo de dados, que permite Nas listas do Python, armazenar vários tipos de dados leva a um
maior consumo de memória Isso não é um grande
problema para listas pequenas, mas ao lidar
com grandes conjuntos de dados, uso de listas regulares
pode ser ineficiente É aqui que os
raios de soneca são úteis. Então, vamos selecionar uma
matriz de árbitros de uma lista de Python. Uma matriz de árbitros pode ser facilmente inicializada a partir de uma lista normal do
Python Para fazer isso, usamos a função
array e passamos R list A como argumento,
mas isso não é tudo. Como os números são
armazenados no mpiarray? Para verificar o tipo
de dados dos elementos da matriz, podemos usar o tipo D. Se observarmos em 64, isso significa que a matriz
está usando números inteiros de 64 bits, o que permite armazenar valores muito
pequenos a muito grandes No tipo Num Pi e no tipo D, consulte conceitos diferentes. Tipo mostra o tipo
do objeto em si. Por exemplo, classe, tipo NumPi ou A. D, abreviação de tipo de dados mostra o tipo de dados dos
elementos dentro da matriz, e devemos lembrar
essa diferença O que acontece se criarmos
uma matriz da Lista B, que contém
diferentes tipos de dados. Vamos ver. Embora B
contenha tipos de dados diferentes, Num Pi converte todos os elementos um único tipo de dados
para maior eficiência Por exemplo, se B contém números
e cadeias de caracteres,
Num Pi converte
tudo em cadeias de Podemos ver que o tipo D é igual a U 21, que significa que
a matriz contém cadeias de caracteres
Unicode com um
comprimento máximo U significa string Unicode. 21 indica o
tamanho máximo de 21 caracteres
de cada elemento. Se uma string exceder esse comprimento, ela será truncada Isso permite que o NumPi armazene e
processe dados de matriz
com eficiência Agora que entendemos como matrizes
Numpi lidam com os tipos de dados, vamos passar para operações de matriz mais
avançadas
6. Fatiamento de matriz NumPy: Como o tipo de dados na matriz
NMP é fixo, não é permitido
misturar
tipos diferentes Quando uma lista com tipos de dados
mistos é convertida em um Numpiarray, todos os elementos são automaticamente convertidos em um tipo comum Nampi fornece várias funções
convenientes
para gerar raios sem
especificar manualmente cada elemento A função de organização cria uma matriz com um
intervalo especificado de valores. Por exemplo, se quisermos
uma matriz começando de cinco a dez, excluindo dez, escrevemos a função range e mais cinco no primeiro argumento
e dez no segundo Como dez não está incluído, o último valor
na matriz é nove. Numpy tem uma variedade de funções
convenientes para
gerar matrizes de
acordo com as regras especificadas, sem a necessidade de
especificar manualmente cada elemento Para isso, existe
a função range. Graças a isso, podemos criar
uma matriz unidimensional, começando de cinco, por exemplo, e indo até dez, mas sem incluir dez. Há também a função
zeros, que cria uma matriz
unidimensional de zeros Vamos criar uma
matriz de tamanho quatro. E obteremos quatro zeros. Ou há uma função
semelhante aos zeros,
mas, em vez disso, obteremos uma matriz
unidimensional de uma vez Há momentos em
que você precisa especificar o tipo de dados da matriz
desde o início. Para isso, usamos a função de matriz com o adicional do parâmetro do tipo
D. Por exemplo, vamos criar
uma matriz unidimensional do tipo floyd, vamos imprimir
o que obtivemos Esses pontos indicam que
não temos apenas números,
mas números de ponto flutuante Se executarmos o tipo D, confirmaremos que atualmente todos os nossos elementos
são do tipo float Agora vou remover linhas
desnecessárias e excluir a função de impressão. indexação na matriz Nampa funciona de
forma semelhante às listas do Python, permitindo o acesso a elementos
específicos com base em sua posição
na Da mesma forma, podemos tirar
fatias da matriz. Por exemplo, vamos pegar elementos da matriz
desde o início,
até, mas sem
incluir, o índice dois. Lembre-se de que a indexação em
Python começa do zero. Portanto, o primeiro elemento da
matriz tem um índice zero. Quando escrevemos o nome da
matriz seguido por uma coluna e depois
especificamos um índice, isso significa pegar elementos desde o início
da matriz até, mas não incluindo
o índice especificado. Pegamos o intervalo
do primeiro elemento, índice zero, até o
índice um, inclusive. Isso ocorre porque, em Python, os limites
de alcance são sempre especificados como
inclusivos É assim que o fatiamento funciona tanto nas listas
do
Python quanto nas listas
do
Python Escrever uma matriz como
essa retornará elementos do índice
zero para o índice um. Então, obteremos dois elementos, valor um e valor dois. Vamos alterar a fatia
e levar elementos do segundo índice até
o final da matriz Aqui, dois é o índice a partir do qual a fatia
começa, inclusive, seguido por uma coluna,
que serve como um delímetro indicando
os limites da fatia Depois da coluna, não
há nada, o que significa que levamos
os elementos até o
final da matriz. Como resultado, obtivemos
os elementos três e quatro. Se especificarmos um índice que
não existe, por exemplo, índice quatro, obteremos um erro porque o índice três é o
último elemento na matriz. O corte em números nos
permite extrair um subconjunto de uma matriz usando um intervalo
especificado Isso é particularmente útil para manipulação e análise de
dados, pois permite a
seleção e modificação eficientes elementos
da matriz sem
criar cópias desnecessárias
7. Como entender as propriedades de matriz e técnicas avançadas de indexação: Agora vamos criar uma matriz
bidimensional. Como podemos encontrar
informações sobre a forma e as dimensões
da matriz Nampa Não contaremos o elemento
manualmente, é claro. Aqui está uma
função chamada shape, que retorna
alguns números correspondentes ao tamanho
da matriz em cada dimensão. Por exemplo, para a matriz de
três por três que acabamos de criar, obtivemos o seguinte resultado. Ao longo do primeiro eixo, nossas linhas, temos o número três,
e ao longo do segundo eixo, nossas colunas, também
temos o número três. Agora vou modificar a matriz
e adicionar mais dimensões. Preste atenção na saída
da função de forma. Adicionamos mais elementos e agora temos uma matriz
tridimensional de tamanho, dois por três por três. Lembre-se de que a diferença
entre
uma matriz e uma matriz é uma
especialização de uma matriz Tem estritamente duas dimensões. A matriz, no entanto, pode
ser multidimensional. Então, vamos continuar, e a
próxima função é DM. Essa função retorna um
número correspondente
aos números de xs ou
dimensões da matriz. Aqui temos DM igual a três. Também usando a função de tamanho, podemos determinar
o número total de elementos na matriz. No nosso caso,
temos 18 elementos, o que é correto, pois multiplicar dois por três
por três dá Se você precisar
inicializar rapidamente uma matriz de ampi da forma
desejada e preenchê-la
com um valor específico, poderá usar a função completa Essa função
nos permite criar uma matriz especificando a forma
como uma tupla de números inteiros, que determina o número
de elementos ao longo de O segundo parâmetro é o
valor que preenche a matriz. Há também o
terceiro parâmetro opcional tipo D, que especifica o
tipo de dados dos elementos da matriz Para entender melhor e escurecer, vamos detalhar nossa matriz. Podemos ver que ele
consiste em duas matrizes, cada uma com uma dimensão
de três por três Portanto, temos uma matriz
tridimensional de tamanho dois por três por três. Ao cortar 0-1,
extraímos uma parte da matriz
tridimensional Essa expressão
seleciona uma submatriz, começando do índice
zero inclusive e terminando no índice
um exclusivo Como resultado, obtemos apenas uma camada de plano de
nossa matriz tridimensional, que é uma matriz que
consiste em três linhas e três colunas. Agora vamos passar do corte
para o aninhamento e especificar Fazemos isso para selecionar
a segunda linha
da matriz que acabamos de
extrair usando o índice zero O índice um
seleciona a segunda linha. Como a indexação em
Python começa do zero , essa operação
retorna a segunda linha da primeira matriz em
nossa matriz tridimensional Este exemplo ilustra
como a indexação e a extração de
submatrizes funcionam em matrizes
tridimensionais n pi Também quero mostrar outra
maneira de obter o mesmo resultado. Vamos
mudar um pouco a notação e obter o mesmo
resultado no Napi Essas duas notações
são equivalentes, mas a diferença está na implementação
interna
e na velocidade de execução A segunda variante geralmente
é mais rápida porque o Numpi
manipula eficientemente o eixo da matriz Na primeira variante,
realizamos dois excessos
consecutivos Primeiro, extrair uma
submatriz usando zero e, em
seguida, extrair um elemento
dessa submatriz Essa abordagem pode introduzir uma sobrecarga
adicional. A principal diferença
é a indexação. O segundo caso usa uma
única operação de indexação, enquanto o primeiro caso requer duas operações
consecutivas Na maioria dos casos, é recomendável usar
a segunda variante, como
fizemos , porque ela é mais eficiente em termos de
velocidade e mais fácil de usar. Agora vou
modificar um pouco nossa matriz, alterando os números
da última matriz, da segunda, para que você possa ver
claramente a diferença. Se especificarmos um
índice de menos um, indicamos que queremos
recuperar a última
camada da matriz Essa expressão
seleciona a última camada da nossa matriz tridimensional, independentemente de quantas camadas a
matriz multidimensional contém No nosso caso,
recuperaremos a segunda matriz, pois temos apenas duas Se você tiver uma matriz
multidimensional com várias camadas aninhadas, menos uma, sempre
selecionamos a última E aqui a matriz menos um
retornará o seguinte. No nosso caso, é equivalente
a usar o índice um. Mas usar menos
um torna o código mais flexível porque não
há necessidade especificar o
número exato de camadas
na matriz. Se adicionarmos outro
índice separado por uma vírgula, ele será usado para acessar uma linha específica
na última Ou seja, em nossa matriz, selecionaremos a segunda linha, que tem um índice de um
na segunda matriz. Agora vamos continuar praticando. Pause o vídeo e tente selecionar
elementos diferentes dessa matriz Tente extrair a última
linha da primeira matriz. Em seguida, a primeira linha
da última matriz. A prática é a chave
para a compreensão. A teoria por si só não é suficiente. Vamos nos aprofundar na nidificação. Agora, vamos extrair o
terceiro elemento da linha. No nosso caso, é 16
com um índice de dois. Simplesmente adicionando um índice, recuperamos o terceiro elemento, que tem um índice de dois Aqui obtemos o valor de 16. Essa notação é equivalente a outra que
eu lembro Pause o vídeo e
tente recuperar o primeiro elemento da última linha
do último
elemento em nossa matriz, que é nossa segunda Espero que você tenha conseguido. Vou deixar menos um como
está para selecionar o último
elemento da nossa matriz Em seguida, precisamos pegar a
última linha nesse elemento, então especifique menos um novamente. Dessa forma, selecionamos
a última linha. Em seguida, pegamos o primeiro elemento. Como a indexação começa do zero, especificamos zero e aqui
obtemos nosso número 17 Agora vamos adicionar um terceiro
elemento à nossa matriz. Se agora estivermos especificando
um índice de menos um, recuperaremos somente o
elemento que acabou de ser criado Às vezes, precisamos extrair uma fatia de submatriz de nossa matriz
multidimensional Então, deixe-me mostrar como isso funciona. Adicionamos uma coluna e uma após a submatriz selecionada
anteriormente, o que significa que estamos
pegando uma fatia Em nossa notação,
vemos menos um, que indica a última
camada da matriz,
a última matriz em nosso caso A primeira e a coluna. Essa parte significa que, a
partir da linha, índice um,
inclusive, até
o final das linhas. Neste último elemento,
selecionamos tudo. Agora, vamos pegar outra fatia de dentro da porção
selecionada Eu especifico a fatia do
primeiro ao último elemento. Isso essencialmente extrai
uma fatia de uma submatriz. Se, em vez de uma fatia, precisarmos recuperar
somente os elementos com um índice de um de
cada linha da fatia Simplesmente especificamos um e obtemos dois
elementos com o índice um. Agora, em vez de selecionar
apenas os primeiros elementos, vamos pegar uma fatia
da submatriz consiste nos dois primeiros
elementos de cada linha Ele deve conter os valores 14, 115, 116 e 118. Publique o vídeo e
tente fazer isso sozinho. Especificamos slides do
índice zero ao índice dois,
exclusivos, o que significa que selecionamos elementos com índice
zero e um. Então pegamos o último elemento de nossas matrizes com
um índice menos um Em seguida, obtemos a fatia da matriz do índice
um até o final E, finalmente,
obtivemos a fatia dessa matriz do índice de
zero ao índice de dois E aqui está nosso resultado.
8. Técnicas essenciais para criação e transformação de matriz NumPy: Agora vou remover peças
desnecessárias. Finalmente, vamos nos familiarizar
com a função vazia. Há uma situação em
que precisamos criar uma matriz de tamanho
especificado e
preenchê-la com os valores posteriormente. Por exemplo, eu criei uma matriz tridimensional
usando essa função. No entanto, é importante
lembrar que as matrizes
criadas usando a função vazia podem conter dados
aleatórios da memória Quando você cria uma matriz usando a
função vazia no Napi, ela não preenche a matriz com zeros ou valores
específicos Em vez disso, ele pega todos os dados
que estão prontos na
memória do computador naquele momento. Isso significa que a matriz pode conter números
aleatórios ou inesperados
quando é criada pela primeira vez. Por isso,
você deve sempre atribuir valores à
matriz antes de usá-la. Caso contrário, seus
cálculos podem fornecer resultados incorretos ou
imprevisíveis Para criar uma matriz
unidimensional com valores distribuídos uniformemente
dentro de um intervalo especificado, usamos no espaço. O primeiro parâmetro
da função define o
valor inicial do intervalo. O segundo parâmetro define o valor final do intervalo e o terceiro
parâmetro especifica o número de elementos ou
pontos que você deseja obter Eu criei uma matriz
com quatro números, distribuídos
uniformemente de
3 a 40, inclusive Ou vamos criar uma matriz com 40 números do mesmo intervalo. Essa função é útil
quando você precisa criar
valores distribuídos uniformemente, por exemplo, para gerar um
vetor de valores, para plotar gráficos ou realizar outras tarefas
analíticas Você especifica quantos
pontos você precisa e quais valores de intervalo você
deseja cobrir. Muito conveniente. Vamos adicionar alguns números
negativos à nossa matriz porque precisarei
deles para o próximo exemplo. Agora vamos nos familiarizar
com a função absoluta. Essa função na biblioteca
num pi é usada para calcular
os valores absolutos dos elementos da matriz Ele retorna em uma matriz onde cada valor é convertido em
seu valor absoluto. Isso é útil em muitos casos, como
trazer valores para uma faixa positiva ou simplesmente obter valores absolutos para análise posterior de dados. Exibimos nossa matriz e agora vemos que
há números negativos. No entanto, depois de aplicar
a função absoluta, os sinais negativos são removidos. Então, aqui vemos apenas valores
positivos. A função diag na
biblioteca Napi é usada para criar uma matriz quadrada com valores
especificados
na diagonal principal No nosso caso, três, quatro e cinco são passados como um argumento de lista
para a função. Essa lista contém
os valores que você deseja colocar na
diagonal principal da matriz. O resultado será
uma matriz quadrada em que a diagonal principal contém os valores especificados enquanto todos os outros
elementos são zeros Você obterá um resultado semelhante com a função diag flag Mas a diferença é que o sinalizador
diag primeiro nivela a lista de entrada em uma matriz unidimensional e depois a coloca
na diagonal Então, se tivermos uma
matriz como essa, diag flag a exibirá como uma matriz diagonal com todos os
outros elementos definidos como zero Neste exemplo,
especificamos apenas um argumento, que indica a
dimensionalidade
da matriz quadrada seis
por seis em nosso caso A matriz resultante
formará um triângulo ou padrão com os abaixo e à esquerda
da diagonal principal, enquanto todos os outros
elementos permanecerão zero. Se eu especificar dois argumentos, o primeiro argumento define o número de linhas
na matriz, seis no nosso caso, e o segundo argumento define
o número de colunas. Segundo, nesse caso, a matriz
resultante
formará novamente um triângulo com os abaixo e à esquerda
da diagonal principal, assim como no primeiro caso, com todos os outros elementos
permanecendo zero, podemos experimentar e
mudar sua forma. É comumente usado
em álgebra linear e operações matriciais, como resolver equações
e aplicar máscaras
9. Técnicas de manipulação de matriz NumPy Visualização, Cópia, Remodelação e Nivelamento: Para o próximo exemplo,
criarei a matriz
unidimensional simples. Vamos nos familiarizar
com a função de visualização. É usado para criar uma matriz que se refere à nossa matriz
recém-criada, significa que ambas as matrizes
fazem referência aos mesmos dados, mas têm formas diferentes Vou explicar como isso funciona. Quaisquer alterações feitas em
uma matriz serão refletidas na outra
porque são duas matrizes, armazenam referências
ao mesmo objeto de dados É importante observar que a função de visualização não
cria uma cópia da matriz. Em vez disso, ele gera
um novo objeto que se refere aos mesmos dados. Para demonstrar,
modificarei o último elemento
da primeira matriz
e o definirei como um. Como resultado, a alteração
aparece nas duas matrizes. Então, por que precisamos
dessa função? Você pode encontrar situações em seu projeto em
que uma variável obtém uma referência
ao mesmo objeto de dados ao qual outra variável se refere. Mesmo sem alterar o
elemento de sua primeira matriz, podemos modificar sua forma. Os dados permanecem os mesmos. Estamos apenas alterando sua forma. Podemos fazer com que uma matriz
unidimensional apareça como uma
bidimensional. Se então verificarmos o segundo raio, que se refere ao mesmo objeto, veremos que sua forma também
mudou. Em projetos grandes, isso pode
levar a erros inesperados, especialmente se uma função espera
uma matriz unidimensional,
mas, devido a
modificações não intencionais, recebe uma
matriz bidimensional ou até tridimensional Nesses casos, usamos a função de visualização para garantir a manipulação
controlada
da estrutura de dados Simplesmente criar
outra variável e referenciar o mesmo
objeto de dados não é suficiente. Quando usamos a função de visualização, garantimos que
alteramos apenas a aparência
da matriz, mantendo a mesma referência
ao objeto de dados. Agora, se remodelarmos
nossa primeira matriz, isso não afetará em nada a
segunda matriz No entanto, se criarmos uma
matriz usando o método copy, geraremos um clone completo e dependente
da matriz original A segunda matriz
será completamente separada da original
contendo os mesmos dados, mas existindo como seu
próprio objeto na memória. No momento da cópia,
ambas as matrizes têm conteúdo
idêntico, mas quaisquer modificações
adicionais uma não
afetarão a Podemos ver isso claramente. Depois de modificar o último
elemento da nossa primeira matriz, a segunda matriz
permanece inalterada Vou remover peças desnecessárias. E imprima a matriz anterior apenas para lembrar sua aparência. Para alterar a forma como o
Nampa interpreta os índices dos
elementos na matriz sem alterar
os dados em si, podemos usar Se remodelarmos a matriz para 27, obteremos uma matriz
unidimensional Os elementos serão organizados
na mesma ordem e armazenados na matriz
tridimensional original. No entanto, é importante
entender que essa é apenas uma representação diferente
dos mesmos dados. Os dados em si
permanecem inalterados. Podemos fazer experiências com nossa matriz e apresentar seus dados de
maneiras diferentes. Não estamos criando uma nova matriz. Estamos simplesmente modificando forma como a matriz atual
é representada A principal conclusão é que o número total de
elementos permanece o mesmo No entanto, de acordo com a documentação
mais recente, modificar a forma usando
o método shape não é mais recomendado, pois pode estar obsoleto na versão futura É recomendável usar
a função reshape
para essa abordagem Vou mudar a forma da matriz usando a
função de remodelação e imprimi-la Em seguida, imprimo uma matriz com a forma de um por nove por três, para que possamos compará-los. Embora tenhamos criado uma nova matriz usando a função reshape, ainda não
criamos
um novo conjunto de dados Portanto, todas
as alterações que fizermos na matriz também serão
refletidas em nossa segunda matriz, e ambas usarão os mesmos dados. Se alterarmos o primeiro
elemento da nossa matriz atual, veremos que isso também se reflete na matriz
recém-criada. Se quiser que
a matriz seja independente
dessa primeira, você precisa criar uma cópia
usando o método copy. Vou imprimir a matriz novamente, me
lembrando de como
ela é. Agora, deixe-me apresentar
a função ravel. É usado na
biblioteca Napi para transformar uma matriz multidimensional
em uma matriz unidimensional, por assim dizer, elogiando-a O que chamamos de ravel em uma matriz, ela nivela todas as suas dimensões e retorna uma matriz
unidimensional, colocando todos os elementos
em uma Na ordem, eles foram
armazenados na matriz original. Essa é uma maneira simples de acessar
todos os elementos de uma matriz independentemente de sua dimensionalidade na forma de uma matriz
unidimensional É útil quando você precisa
processar ou analisar dados em um formato linear mais simples sem alterar a estrutura
original da matriz
10. Funções matemáticas no NumPy: Agora vamos nos familiarizar com as funções matemáticas e ver como elas funcionam em unidimensionais e
multidimensionais Usando a função de organização, criarei a matriz
unidimensional. Por exemplo, a
função sum retornará a soma de todos os elementos em
nossa matriz unidimensional. No entanto, se eu remodelar nossa matriz usando a
função reshape para torná-la maior, digamos, nove números organizados no formato três
por três Agora temos uma matriz
multidimensional. Se simplesmente aplicarmos
a função sum, ela retornará a soma de todos os elementos, independentemente
do número de dimensões. No entanto, se quisermos aplicar a função soma especificamente a linhas
ou colunas, precisamos especificar
o parâmetro axis. Se eu definir o eixo igual a um, obteremos uma lista de
somas para Se eu especificar o
eixo igual a zero, obteremos uma lista de somas
para A função principal calcula o valor médio dos elementos
da matriz Como antes, podemos obter a
média de toda a matriz ou especificar o eixo para
calcular a média
por linhas ou colunas. Vamos encontrar o valor máximo em nossa matriz usando
a função max, e será oito. Da mesma forma, a
função média encontra o valor mínimo da nossa
matriz e então será zero. Novamente, podemos especificar
o parâmetro do eixo. Se eu especificar eixo igual a um, encontramos o
valor mínimo de cada Eu mudo para o máximo. Se eu especificar eixo
igual a zero, encontramos o
valor máximo de cada coluna Agora nos familiarizamos
com os métodos de matriz de soma. Se você quiser saber
mais detalhadamente, consulte a documentação. Aqui vemos o método de soma, que usamos anteriormente, junto com muitos outros métodos. No entanto, o Numpi também tem funções
autônomas que
servem a propósitos semelhantes Às vezes, pode haver confusão entre métodos e
funções no Numpi Mas, por enquanto, a principal
diferença é entender que os métodos estão
associados a objetos em nosso caso,
matrizes, e eles são
chamados usando a notação de pontos As funções são globais e podem ser chamadas diretamente da
importante biblioteca Numpi Não vamos nos aprofundar nos conceitos de
programação orientada a
objetos. Para isso, é claro, você pode verificar meu
perfil e encontrar o padrão de zero até a programação orientada a
objetos. Quase 6 horas de melhores
informações para você. Vamos calcular
a raiz quadrada de cada elemento em uma matriz
usando uma função num pi. Vou
modificar um pouco a matriz, removendo a forma
, pois não é necessário fazer
isso agora. Em seguida, vamos calcular o expoente da nossa matriz unidimensional Também podemos calcular funções
trigonométricas
como seno ou caso
usando funções NumPi Ou vamos tentar calcular o logaritmo natural de
cada elemento na matriz Opa, recebemos um erro porque não podemos pegar
o logaritmo Vamos remover zero
da nossa matriz. Isso é melhor. Agora podemos obter a resposta correta
sem erros. O método redondo em matrizes
NAPA é usado para
arredondar os valores dos elementos para
o número inteiro mais próximo Se eu usar esse método
na matriz atual, nada mudará porque a matriz consiste em números inteiros No entanto, se eu reverter a função de log e
depois aplicar a rodada, veremos o
efeito com mais clareza O método redondo também usa
um argumento opcional, o número de casas
decimais para a segunda rodada Por exemplo,
podemos especificar a terceira rodada para arredondar até
três casas decimais Ou arredondar um para arredondar para
um lugar unidimensional. Para esclarecer o que fizemos aqui, vou reescrever um pouco o
código Eu criei uma variável e
atribuí essa expressão a ela. Em seguida, imprimi o resultado, arredondado para uma casa decimal Para o próximo exemplo,
gerarei uma matriz contendo números
negativos. Podemos usar a função randint para gerar uma matriz
de números inteiros aleatórios, incluindo valores negativos e
positivos dentro um intervalo especificado
de -50 Obviamente, você pode modificar o intervalo dos números
de elementos conforme necessário. Então, obtemos uma matriz como essa. Agora vamos nos familiarizar com a função absoluta na nuca Essa função
calcula os valores absolutos
dos elementos da matriz Ele retorna uma matriz
em que cada elemento é o valor absoluto
do elemento correspondente
na matriz original. Essa função é útil quando você precisa trabalhar com valores
absolutos, como analisar dados sem considerar
o sinal dos números. Você me pergunta qual é a
diferença entre função
ABS e a função absoluta que vimos antes. No NumPi, não há diferença
entre ABS e absoluto. Eles fazem a mesma coisa. O ABS é simplesmente um Allis para função
absoluta Ambas as funções retornam o valor
absoluto de cada elemento na matriz. Isso significa que eles convertem números
negativos positivos, deixando os números
positivos inalterados Você pode usar qualquer
um, mas o ABS é mais curto e geralmente
preferido para facilitar a leitura Vamos nos familiarizar
com a função argmax. Essa função
retorna o índice
da primeira ocorrência do valor
máximo na matriz. Aqui vemos que o valor
máximo é 42 e seu índice é igual a um. A função argmin
funciona de forma semelhante. Ele retorna o índice
da primeira ocorrência, o valor mínimo na matriz. Se a matriz tiver
vários elementos com os mesmos valores máximos
ou mínimos, argmax e argmin retornarão o índice da primeira
ocorrência desses Essas funções são úteis
para encontrar a posição
dos elementos maiores e menores na matriz numpy Isso pode ser útil em muitos
algoritmos e cálculos.
11. Randomização e combinação de matrizes no NumPy: Há casos em que você precisa gerar
números aleatórios para uma matriz
e, se quisermos que esses números sejam reproduzidos
na mesma ordem, precisamos nos familiarizar
com a função SID A função SID inicializou
o gerador de números aleatórios, permitindo que você defina um valor inicial
fixo Isso garante que
a mesma sequência de números aleatórios seja
gerada a cada vez, tornando seu código reproduzível Se eu disse o valor
inicial uma vez, que
seja zero, por exemplo. Isso significa que fixamos o valor inicial do gerador de
números aleatórios. Isso significa que toda
vez que geramos números
aleatórios usando
a função aleatória NP, obtemos a mesma
sequência de números Isso é muito útil para a
reprodutibilidade dos resultados. Em alguns casos, você precisa que
seus números aleatórios
sejam os mesmos sempre que
o programa for executado. Também pode ser
útil se você quiser mostrar algo para alguém e precisar reproduzir
o comportamento com
a mesma matriz e a
mesma sequência de números A função de permutação
na biblioteca Numbi é usada para criar
permutações aleatórias Se eu especificar seis, será uma matriz aleatória
contendo números de 0 a 5, reorganizados em ordem aleatória Essa função é frequentemente
usada quando você precisa embaralhar ou reorganizar índices para continuar trabalhando
com dados ou para selecionar
aleatoriamente um
subconjunto de elementos da matriz Eu posso aumentar o bit da matriz. Se eu especificar 16 aqui, obteremos uma matriz aleatória contendo números de
0 a 15 inclusive, reorganizados em ordem aleatória A função aleatória, no nosso caso, gera uma matriz de
três por três em cada elemento é um número aleatório com uma distribuição normal, ou como também é chamada de distribuição
gaussiana É importante observar que
a função aleatória
gera um número com uma distribuição normal com parâmetros que podem ser alterados. Por exemplo, você pode aumentar
ou diminuir o número de elementos na matriz aleatória alterando os argumentos
da função. Vamos continuar com a função de
acréscimo. A função append
na biblioteca Napi é usada para adicionar novos valores
ao final de Ele usa os
seguintes argumentos. A primeira é
a matriz original à qual adicionaremos novos valores. O segundo são os
valores que queremos adicionar. No nosso caso,
adicionamos um novo valor à nossa matriz na forma de uma lista
composta por três três. A função de inserção na biblioteca
Napi é usada para inserir novos valores em uma
matriz em um índice especificado Essa função usa três
argumentos: a matriz original, o índice no qual inserir os valores e os
valores a serem inseridos. No nosso caso, estou inserindo duas forças na matriz
na posição dois do índice A função de inserção não
altera a matriz original, mas cria uma nova com os valores inseridos para excluir elementos de uma matriz
em índices especificados Usamos a função delete. São necessários três argumentos. O primeiro, a matriz. O segundo, os índices
do elemento, que
queremos excluir, e o
terceiro, o parâmetro X. Se o eixo for conhecido, ele será aplicado
à matriz achatada. Vamos ver como isso funciona
com um exemplo. Agora, excluímos
elementos com índices zero, um e o último
elemento da nossa matriz Depois de chamar a função
delete, ela retorna no UA sem
os elementos excluídos. A matriz original
permanece inalterada. Se precisarmos excluir um intervalo de índices da matriz,
podemos fazer assim Executamos a
função delete, especificamos nossa matriz e usamos o objeto
numb para criar um intervalo
de índices Nós especificamos o intervalo de 2 a 5. Lembre-se de que cinco não
serão incluídos. Opa, esqueci o sublinhado. Agora, excluímos elementos
da matriz com índices 2 a 4 e retornamos UA
sem esses Para o próximo exemplo,
eu crio uma matriz simples. A matriz será
bidimensional. Opa, esqueci os parênteses. Desculpe, deixe-me adicioná-los rapidamente. Na função delete, também
há o parâmetro axis, que indica a
dimensão na qual
queremos excluir valores. Se especificarmos eixo
igual a zero, isso significa que
queremos excluir Então, em nosso exemplo, excluímos
a linha com o índice um e obtemos URA sem
a função com o índice um. Isso será mais legível. Se eu especificar eixo igual a um, a coluna com
índice um
será excluída Eu crio outra matriz simples e nos familiarizaremos
com a função de concatenação A função de concatenação na
biblioteca Napi é usada para
unir ou concatenar matrizes ao longo Então eu uso a função, especifico a matriz a ser unida. Eles são passados como um grampo e também há um eixo de parâmetros
opcional, que é a
linguagem dimensional para unir o raio Se quisermos unir a
matriz ao longo da coluna, devemos especificar o
eixo igual a um. Por padrão, o eixo é igual a zero, que significa desenhar ao longo
das linhas da primeira dimensão Podemos especificar zero ou
não especificá-lo. Esse valor será o padrão
e obteremos nosso resultado. Portanto, a
função de concatenação permite unir matrizes em
várias dimensões, dependendo da Neste exemplo, removerei a parte desnecessária e
criarei raios multidimensionais Vamos nos familiarizar
com a função V stack. Essa função é usada
para empilhar verticalmente ou concatenar dois ou mais raios
ao longo da primeira concatenar dois ou mais raios
ao longo da primeira dimensão, linhas.
Esqueci os parênteses Desculpe, deixe-me adicioná-los rapidamente. Nós especificamos os raios. Queremos empilhar verticalmente. Eles são passados como uma tupla. Como resultado,
obtemos uma matriz que contém
linhas concatenadas de Essa é uma maneira conveniente concatenar uma matriz verticalmente e funciona com qualquer
número Vou copiar essas duas
linhas para um novo exemplo. Há também a função
H stack. É para concatenação horizontal
de duas ou mais matrizes. Você pode se perguntar qual é a diferença entre
concatenar, onde
especificamos o eixo, e
as funções, como pilha
V ou pilha H. A principal diferença
entre eles está na sintaxe. É isso mesmo. Quando quiser unir uma matriz
em uma determinada dimensão, você pode usar qualquer uma dessas
funções, dependendo sua preferência e
conveniência, depende de você. A única coisa que quero
observar é que, em concatenar,
podemos especificar o eixo, podemos especificar o eixo, e isso
nos permite concatenar matrizes não apenas vertical
ou horizontalmente,
mas também ao longo de qualquer eixo, porque o eixo pode ser não apenas zero ou um, mas também ao longo de qualquer eixo, porque o eixo pois os raios podem ser
multidimensionais e isso
nos permite concatenar
matrizes não apenas vertical
ou horizontalmente,
mas também ao longo de qualquer eixo, porque o eixo pode ser não apenas zero ou um,
pois os raios podem ser
multidimensionais.
12. Operações avançadas de matriz e técnicas de divisão: Vou remover as
peças necessárias e criar novas matrizes. Vou mostrar outra
maneira de fazer isso. A FramterFunction na biblioteca
Nabi é usada para criar uma
matriz unidimensional com base em um Ele pega uma sequência
de valores
do iterador e
os converte em uma matriz Passamos um iterador
ou uma sequência de valores a partir da qual
criaremos uma matriz Você também pode especificar
o parâmetro do tipo D, que é o tipo de dados para
o qual os valores do iterador
precisam ser convertidos Há uma contagem de
parâmetros opcional, que é o número de nós
a ser retirado do iterador Por padrão, esse
parâmetro é menos um, que significa pegar todos os valores Em nosso exemplo, criamos a primeira matriz de quatro
números usando intervalo. Na segunda matriz, também
usamos intervalo, especificando que quatro números são retirados do intervalo de
quatro a oito, então eles são dos números
na primeira matriz Deixe-me apresentar a função de pilha de
colunas. A função de pilha de colunas
na biblioteca Napi é usada para concatenação
horizontal Passamos uma tupla de matrizes como
as colunas da matriz que
queremos concatenar Vamos imprimi-lo
para ver o que temos. É uma ferramenta conveniente
para criar matrizes, especialmente quando você
deseja combinar dados de várias
matrizes como colunas, e vemos nossas matrizes Os dois primeiros foram
gerados como exemplos e o terceiro é a
soma de nossas duas matrizes Existe uma tecnologia de linhas de
função semelhante, mas serve para combinar dados
de várias matrizes como linhas Nesse caso, o resultado é o
mesmo que se usássemos
a função Vtach Vou adicionar uma linha vazia para separar as
matrizes para maior clareza Eu também posso usar np dot R. É uma instância do objeto da classe
R no Napi Ele atua como uma ferramenta conveniente de concatenação de
matrizes permitindo
criar e mesclar raios rapidamente ao longo do eixo Eu também posso usar o C. É uma instância do objeto da
classe C no Nampi É uma ferramenta conveniente para concatenação de
colunas, significa que mescla a matriz
ao longo do eixo Estou mostrando isso para que você conheça as possibilidades
de concatenação Você pode escolher o que
funciona melhor para você. Vou remover
peças desnecessárias para evitar bagunça e gerar uma
matriz de dez números de 0 A função de divisão H é usada para dividir
horizontalmente uma
matriz em submatrizes Ele divide a matriz
em partes iguais às
seções ao longo do eixo
horizontal Ele pega a matriz original. Queremos dividir o
primeiro parâmetro, e o segundo parâmetro é em
quantas partes
queremos dividir a matriz. Se eu tentar dividir a matriz
em três partes quando seu comprimento não for divisível por três, receberei um erro No entanto, em nosso caso, se eu especificar cinco, a matriz será dividida
uniformemente em cinco submatrizes Também podemos dividir a matriz em duas partes iguais. Seu
comprimento permite isso. V split é uma função em umpi usada para dividir uma matriz
verticalmente ao longo das linhas Ele divide uma determinada matriz em várias submatrizes
ao longo Como estamos dividindo a matriz verticalmente, recebemos Não podemos dividir uma matriz
unidimensional por colunas. Vou gerar uma matriz um pouco
maior e usar a função reshape para formar uma nova
forma bidimensional da matriz Vamos executá-lo. um erro porque não podemos
dividir essa matriz em duas, mas podemos dividi-la em três. Essa função é especialmente
útil quando você precisa separar uma matriz em seções de linhas
menores. Deixe-me aumentar a matriz para o próximo exemplo e
torná-la tridimensional. Se precisarmos dividir a matriz, não apenas na horizontal
ou na vertical, pois pode
haver mais dimensões se a matriz O eixo pode ser não
apenas zero ou um, podemos usar a função de
divisão de raios. Ele divide a matriz no número
especificado de peças. O segundo argumento é
o número de partes, que é duas no nosso caso. E o terceiro
parâmetro é o eixo. No nosso caso, eu especifiquei que o
eixo é igual a dois. Então, está dividido ao longo
da terceira dimensão. Especificar um eixo igual à função
Numbi significa que
estamos operando ao longo
da terceira dimensão, a profundidade de uma A função de divisão no Numbi permite a divisão ao longo
da terceira dimensão Mesmo que o número de peças
não seja dividido uniformemente, ele distribui os
elementos da maneira mais uniforme
possível entre as submatrizes
resultantes Mas se isso não for possível, ele criará peças com
diferentes números de elementos. No nosso caso,
obteremos três submatrizes. Dois conterão dados e o terceiro estará vazio. Também podemos experimentar
e dividir ao longo sequências
do eixo um ou das sequências
do eixo zero Eu sugiro fazer uma pausa aqui
e experimentar. Pratique um pouco.
Agora, por exemplo, vou criar a lista mais simples e a
matriz mais simples em Python As operações entre listas e raios têm comportamentos
naturais diferentes. No caso de listas, a operação de adição
executa a concatenação Isso significa unir
duas listas em uma, mas não realiza adição
aritmética No caso de matrizes numéricas, a operação de adição executa adição
elemento a elemento, o que significa que adiciona
elementos correspondentes da Veja a diferença
entre duas funções de impressão. Um, adicionando listas e
outro adicionando matriz. Também podemos realizar a multiplicação
elemento de duas matrizes do mesmo tamanho Ou multiplique cada
elemento por número. Se eu especificar essa
operação em uma lista,
ela repetirá a lista inteira
no número especificado de
vezes, em vez de realizar a vezes, em vez de realizar multiplicação elemento a
elemento,
como uma matriz de árbitros Quando você executa a
operação de subtração, cada elemento na matriz muda seu sinal
para o oposto O resultado dessa
operação será uma nova matriz em que cada elemento da
matriz será dividido por um. Em vez de um,
pode ser qualquer número. Essa operação retorna
ao restante de cada
elemento quando dividida por dois, identificando
efetivamente números
pares e ímpares
na matriz Se você subtrair uma lista
de uma matriz Numbi, a lista será
convertida em uma matriz
e a subtração
do elemento Y No entanto, você não pode subtrair lista de uma lista. Você
receberá um erro. Multiplicar uma lista por lista também
resultará em um erro. Agora, quero apresentar
outro conceito e, para isso, criarei uma matriz
bidimensional
e uma matriz de 11 dimensões. Há também o
conceito de radiodifusão. transmissão de matriz é um
mecanismo no Napi que permite realizar operações em matrizes de diferentes formas
ou dimensões Se dois raios tiverem um
número diferente de dimensões, novas dimensões serão automaticamente
adicionadas à matriz com menos dimensões até que
seu tamanho seja compatível. Em outras palavras, se tivermos o mesmo número de elementos
em cada linha da matriz, quando adicionarmos dois raios, a matriz menor
será concatenada linha a linha com
as linhas
da Neste exemplo,
criarei novamente uma matriz mais simples. Vamos nos familiarizar com
o operador combinado. Quando realizamos a operação de
adição, podemos fazer isso de forma mais sucinta Neste exemplo, estamos adicionando o número cinco
a cada elemento
da matriz e atualizando seu valor inicial para
a soma com cinco. Essa operação é equivalente
ao uso dessa notação, mas é feita diretamente
na matriz sem
criar um novo objeto É útil porque permite aumentar
ou diminuir
com eficiência os valores de todos os elementos
da matriz sem precisar
criar um novo Isso também pode ser aplicado a outras
operações matemáticas.
13. Carregando, salvando e pesquisando no NumPy: Imagine que temos o arquivo
de texto do qual queremos carregar dados. O método gen from TXT foi
projetado para ler dados de um arquivo de texto e
determinar automaticamente os tipos de dados É uma ferramenta poderosa
para trabalhar com dados em formatos como CSV,
TSV e outros formatos de texto Agora, vamos carregar dados do arquivo
de dados TXT. Onde os dados são
separados por vírgulas, especificamos que
o
limitador é igual a Esse método pode lidar
automaticamente com valores
ausentes e outras peculiaridades
dos dados Vamos gerar esses dados
em uma ampiray. Se usarmos Jen do Txt para ler números separados por
vírgulas de um arquivo de texto, a saída no console normalmente
será
uma matriz Numpi com os valores carregados do Os valores serão
exibidos como uma matriz em que cada número é um
elemento na matriz. A mesma função na biblioteca
Numpi é usada para salvar matrizes numpi em formato
binário em Isso permite salvar
os dados da matriz para que possam ser usados posteriormente sem a necessidade recarregar ou Se abrirmos o arquivo criado
com a matriz salva, não
veremos
nada útil para nós. No entanto, a
função de carregamento é usada para carregar essas matrizes salvas de
volta à memória do programa Ele permite acessar os dados
da matriz que foi salva
usando a função segura. Essas funções são muito úteis para trabalhar com
grandes quantidades de dados e
processá-los posteriormente sem a
necessidade de um cálculo. A função savetixt
na biblioteca Napi é usada para salvar matrizes Nampi em formato de texto
em Isso permite salvar os dados da matriz em um formato conveniente
para leitura e edição. Por exemplo, vou
escolher o formato CSV, mas você pode especificar extensões
como Tixt, CSV Essas são extensões comuns geralmente usadas para armazenar
dados em formato de texto. No entanto, o SaptiXT
pode realmente salvar dados em qualquer arquivo de texto com
as extensões que você desejar Podemos ver que nosso arquivo apareceu no diretório do
projeto. Agora vamos carregá-lo. A função od text
é usada para carregar dados de um arquivo de texto
em um AMPirray. Ele permite acessar dados que foram salvos usando a função
save Tixt Isso é muito semelhante
ao mecanismo que
discutimos anteriormente, onde
usamos salvar e depois carregar. Mas esse formato não era
fácil de usar ou legível para nós. Aqui, no entanto, já podemos ver o arquivo e
seu conteúdo salvo. Essas duas funções são muito
úteis para trabalhar com dados em um formato
compreensível para humanos Eles permitem salvar
e carregar dados facilmente sem a necessidade de entender
a estrutura interna
do Numprays Para o próximo exemplo,
deixe-me criar U Suponha que tenhamos uma matriz bidimensional
representando alguns dados. Bem, seja a temperatura
em diferentes regiões, e queremos encontrar
a posição de todos os elementos que excedem
um determinado limite Eu defino um limite variável
e o valor de 30. Esse é o valor sobre o qual queremos encontrar
elementos na matriz. Como podemos fazer isso em Nam Pi? Existe uma função que
é particularmente útil para encontrar a posição de elementos que satisfazem uma determinada condição, e essa é a função
arc ware. Nossa condição retorna
os índices
do elemento que são verdadeiros na
matriz booleana porque
essa expressão cria
uma matriz booleana cada elemento é verdadeiro se for maior que
30 e Eu imprimo a matriz de dados original para fornecer contexto
para a posição
dos elementos e, em seguida,
imprimo os índices. Esses índices são retornados
como matriz bidimensional, em que cada linha representa as
coordenadas de um elemento, o índice da linha e o índice da coluna
na matriz original A saída mostra que os
elementos maiores que 30 estão localizados
na seguinte posição
na matriz de dados, Linha um, coluna dois, elemento 35. Linha dois, coluna zero, elemento 40. Linha dois, coluna um, elemento 45 e assim por diante. Neste exemplo,
demonstrei como a
função Arcbar pode ser usada para localizar a posição
de elementos e matrizes
numéricas que atendem a
uma condição específica Parabéns. Nós
terminamos esse curso intensivo. Espero que você tenha achado isso
interessante e não muito chato e que tenha
achado esta lição útil Mais uma vez, quero
enfatizar que a prática é
a coisa mais importante. Eu recomendo fazer uma pausa
após cada aula e experimentar ou
repetir algo manualmente porque a teoria é boa, mas você não aprenderá
sem A melhor maneira de aprender é
por meio de sua própria prática. Obrigado pela atenção e continue programando, continue aprendendo