Introduction aux types de données Python - numpy

WBOY
Libérer: 2022-07-19 20:24:09
avant
2865 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur Python, qui organise principalement les problèmes liés aux types de données numpy, y compris les types de données de base de numpy, les types de données composites personnalisés numpy, l'utilisation de ndarray pour enregistrer les types de données de date, etc. contenu ci-dessous, j’espère qu’il sera utile à tout le monde.

Introduction aux types de données Python - numpy

【Recommandation associée : Tutoriel vidéo Python3


1. Types de données de base de numpy

Nom du type Indicateur de type
Booléen bool
Type entier signé int8/int16/int32/int64
Type entier non signé uint8/uint16/uint32/uint64
Type à virgule flottante float 16/flo at32/float64
Pluriel type complex64 / complex128
Type de caractère str, chaque caractère est représenté par un codage Unicode 32 bits
import numpy as np

arr = np.array([1, 2, 3])
print(arr, arr.dtype)

arr = arr.astype('int64')
print(arr, arr.dtype)

arr = arr.astype('float32')
print(arr, arr.dtype)

arr = arr.astype('bool')
print(arr, arr.dtype)

arr = arr.astype('str')
print(arr, arr.dtype)
Copier après la connexion

Introduction aux types de données Python - numpy

2. Si Si tu veux pour stocker les types d'objets dans ndarray, numpy recommande d'utiliser des tuples pour stocker les valeurs des champs d'attribut des objets

, puis l'ajout de tuples à ndarray fournit une syntaxe pour faciliter le traitement de ces données.

import numpy as np

data = [
    ('zs', [99, 98, 90], 17),
    ('ls', [95, 95, 92], 16),
    ('ww', [97, 92, 91], 18)
]
# 姓名 2 个字符
# 3 个 int32 类型的成绩
# 1 个 int32 类型的年龄
arr = np.array(data, dtype='2str, 3int32, int32')
print(arr)
print(arr.dtype)
# 可以通过索引访问
print(arr[0], arr[0][2])
Copier après la connexion

Introduction aux types de données Python - numpy

Lorsque la quantité de données est importante, la méthode ci-dessus n'est pas pratique pour accéder aux données.

ndarray fournit des types de données et des alias de colonnes qui peuvent être définis sous la forme de

dictionnaires ou de listes
. Lorsque vous accédez aux données, vous pouvez y accéder via des index d'indice ou via des noms de colonnes.

import numpy as np

data = [
    ('zs', [99, 98, 90], 17),
    ('ls', [95, 95, 92], 16),
    ('ww', [97, 92, 91], 18)]# 采用字典定义列名和元素的数据类型arr = np.array(data, dtype={
    # 设置每列的别名
    'names': ['name', 'scores', 'age'],
    # 设置每列数据元素的数据类型
    'formats': ['2str', '3int32', 'int32']})print(arr, arr[0]['age'])# 采用列表定义列名和元素的数据类型arr = np.array(data, dtype=[
    # 第一列
    ('name', 'str', 2),
    # 第二列
    ('scores', 'int32', 3),
    # 第三列
    ('age', 'int32', 1)])print(arr, arr[1]['scores'])# 直接访问数组的一列print(arr['scores'])
Copier après la connexion

Introduction aux types de données Python - numpy3. Utilisez ndarray pour enregistrer le type de données de date

import numpy as np

dates = [
    '2011',
    '2011-02',
    '2011-02-03',
    '2011-04-01 10:10:10'
]

ndates = np.array(dates)
print(ndates, ndates.dtype)

# 数据类型为日期类型,采用 64 位二进制进行存储,D 表示日期精确到天
ndates = ndates.astype('datetime64[D]')
print(ndates, ndates.dtype)

# 日期运算
print(ndates[-1] - ndates[0])
Copier après la connexion

Introduction aux types de données Python - numpy

1. La prise en charge de la chaîne de date ne prend pas en charge 2011/11/11, utilisez des espaces pour séparé La date ne prend pas en charge 2011 11 11, mais prend en charge 2011-11-11
2. Il doit y avoir un espace entre la date et l'heure pour séparer 2011-04-01 10 :10:10
3. Format d'écriture de l'heure 10:10:10

2011/11/11,使用空格进行分隔日期也不支持 2011 11 11,支持 2011-11-11
2.日期与时间之间需要有空格进行分隔 2011-04-01 10:10:10
3.时间的书写格式 10:10:10

4. Tapez le code de caractère (abréviation du type de données)

numpy fournit le type. code de caractère qui peut être une gestion plus pratique des types de données.

TypeBooleanType entier signéentier non signépoint flottantcomplex64 / complex128str, chaque caractère est représenté par un codage Unicode 32 bitsdatatime64
Indicateur de type Code de caractère
bool ?
int8 /int1 6/int32/int64 i1/ i2/ i4/i8
uint8/uint16/uint32/uint64 u1/u2/u4/u8
float16/float32/float64 f2 /f4 / f8
c8 / c16 Type de caractère
U Date
M8[ Y] / M8[M ] / M8[D] / M8[h] / M8[m] / M8[s]
import numpy as np

data = [
    ('zs', [99, 98, 90], 17),
    ('ls', [95, 95, 92], 16),
    ('ww', [97, 92, 91], 18)
]
# 采用字典定义列名和元素的数据类型
arr = np.array(data, dtype={
    # 设置每列的别名
    'names': ['name', 'scores', 'age'],
    # 设置每列数据元素的数据类型
    'formats': ['2U', '3i4', 'i4']
})

print(arr)
print(arr[1]['scores'])
print(arr['scores'])
print(arr.dtype)
Copier après la connexion

5. Cas Introduction aux types de données Python - numpy

Sélectionnez les champs, utilisez les données du magasin ndarray.

import numpy as np

datas = [
    (0, '4室1厅', 298.79, 2598, 86951),
    (1, '3室2厅', 154.62, 1000, 64675),
    (2, '3室2厅', 177.36, 1200, 67659),]arr = np.array(datas, dtype={
    'names': ['index', 'housetype', 'square', 'totalPrice', 'unitPrice'],
    'formats': ['u1', '4U', 'f4', 'i4', 'i4']})print(arr)print(arr.dtype)# 计算 totalPrice 的均值sum_totalPrice = sum(arr['totalPrice'])print(sum_totalPrice/3)
Copier après la connexion


Introduction aux types de données Python - numpy

[Recommandations associées :

Tutoriel vidéo Python3Introduction aux types de données Python - numpy ]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!