Maison > développement back-end > Tutoriel Python > bibliothèque numpy python

bibliothèque numpy python

巴扎黑
Libérer: 2017-06-23 15:32:27
original
2389 Les gens l'ont consulté

python-numpy

Écriture et accès à des fichiers CSV

Écriture de fichiers CSV

CSV (Comma-Separated Value, valeur séparée par des virgules) est un format de fichier courant utilisé pour stocker des données en masse.

Écrire un fichier csv

np.savetxt(frame, array, fmt='%.18e', delimiter=None)
• frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件
• array : 存入文件的数组
• fmt : 写入文件的格式,例如:%d %.2f %.18e
• delimiter : 分割字符串,默认是任何空格
Copier après la connexion

Exemple :

>>> a = np.arange(100).reshape(5,20)>>> np.savetxt('a.csv',a,fmt='%d',delimiter=',')
Copier après la connexion

Le fichier résultant est comme ceci

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39
40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59
60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99
Copier après la connexion

Modifier les paramètres, écrire sous forme de nombre à virgule flottante

>>> a = np.arange(100).reshape(5,20)>>> np.savetxt('a.csv',a,fmt='%.1f',delimiter=',')
Copier après la connexion
0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0
20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0
40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0
60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0
80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0
Copier après la connexion

Lire le fichier csv

Lire le fichier csv

np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)
• frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件
• dtype : 数据类型,可选
• delimiter : 分割字符串,默认是任何空格
• unpack : 如果True,读入属性将分别写入不同变量
Copier après la connexion

Exemple :

>>> b = np.loadtxt('a.csv',delimiter=',')>>> b
array([[  0.,   1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.,         11.,  12.,  13.,  14.,  15.,  16.,  17.,  18.,  19.],
       [ 20.,  21.,  22.,  23.,  24.,  25.,  26.,  27.,  28.,  29.,  30.,         31.,  32.,  33.,  34.,  35.,  36.,  37.,  38.,  39.],
       [ 40.,  41.,  42.,  43.,  44.,  45.,  46.,  47.,  48.,  49.,  50.,         51.,  52.,  53.,  54.,  55.,  56.,  57.,  58.,  59.],
       [ 60.,  61.,  62.,  63.,  64.,  65.,  66.,  67.,  68.,  69.,  70.,         71.,  72.,  73.,  74.,  75.,  76.,  77.,  78.,  79.],
       [ 80.,  81.,  82.,  83.,  84.,  85.,  86.,  87.,  88.,  89.,  90.,         91.,  92.,  93.,  94.,  95.,  96.,  97.,  98.,  99.]])>>> b = np.loadtxt('a.csv',dtype=np.int,delimiter=',')>>> b
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19],
       [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,37, 38, 39],
       [40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,57, 58, 59],
       [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,77, 78, 79],
       [80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,97, 98, 99]])
Copier après la connexion

CSV ne peut stocker efficacement que des tableaux unidimensionnels et bidimensionnels
np.savetxt() np.loadtxt() ne peut accéder efficacement qu'à des tableaux unidimensionnels et bidimensionnels. tableaux dimensionnels

Accès aux données multidimensionnelles

Écriture de données multidimensionnelles

a.tofile(frame, sep='', format='%s')
• frame : 文件、字符串
• sep : 数据分割字符串,如果是空串,写入文件为二进制
• format : 写入数据的格式
Copier après la connexion

Exemple;

>>> a = np.arange(100).reshape(5,10,2)>>> a.tofile("a.dat",sep=',',format='%d')
Copier après la connexion

a. Contenu de dat :

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99
Copier après la connexion

Si le délimiteur n'est pas spécifié, un fichier binaire sera généré et ne pourra pas être lu avec un éditeur de texte.

Lecture de données multidimensionnelles

np.fromfile(frame, dtype=float, count=‐1, sep='')
• frame : 文件、字符串
• dtype : 读取的数据类型
• count : 读入元素个数,‐1表示读入整个文件
• sep : 数据分割字符串,如果是空串,写入文件为二进制
Copier après la connexion

Fonction de nombres aléatoires de Numpy

Sous-bibliothèque aléatoire de NumPy
np.random.*

函数说明
rand(d0,d1,...,dn)根据d0-dn创建随机数数组,浮点数,[0,1),均匀分布
randn(d0,d1,...,dn)根据d0-dn创建随机数数组,标准正态分布
randint(low[,high,shape])根据shape创建随机整数或整数数组,范围是[low,high)
seed(s)随机数种子,s是给定的种子值
shuffle(a)根据数组a的第1轴进行随排列,改变数组a
permutation(a)根据数组a的第1轴产生一个新的乱序数组,不改变数组a
choice(a[,size,replace,p])从一维数组a中以概率p抽取元素,形成size形状新数组replace表示是否可能重用元素,默认为False
uniform(low,high,size)产生具有均匀分布的数组,low起始值,high结束值,size为形状
normal(loc,scale,size)产生具有正态分布的数组,loc为均值,scale标准差,size为形状
poisson(lam,size)产生具有泊松分布的数组,lam为随机事件发生率,size为形状

Fonctions statistiques de Numpy

Les fonctions statistiques fournies directement par NumPy
np.*

函数说明
sum(a,axis=None)根据给定axis计算数组a相关元素之和,axis整数或元组
mean(a,axis=None)根据给定axis计算数组a相关元素的期望,axis整数或元组
average(a,axis=None,weights=None)根据给定axis计算数组a相关元素的加权平均值
std(a,axis=None)根据给定轴axis计算数组a相关元素的标准差
var(a,axis = None)根据给定轴axis计算数组a相关元素的方差
min(a) max(a)计算数组a中元素的最小值,最大值
argmin(a) argmax(a)计算数组a中元素的最小值,最大值的降一维后下标
unravel_index(index,shape)根据shape将一维下标index转换成多维下标
ptp(a)计算数组a中元素最大值和最小值的差
median(a)计算数组a中元素的中位数(中值)

axis=Aucun sont les paramètres standards des fonctions statistiques

Gradient de Numpy fonction

函数说明
np.gradient(f)计算数组f中元素的梯度,当f为多维时,返回每个维度梯度

Gradient : le taux de changement entre des valeurs consécutives, c'est-à-dire la pente
Les valeurs de l'axe Y correspondant à trois coordonnées X consécutives sur l'axe de coordonnées XY : a, b , c, où , le gradient de b est : (c‐a)/2

>>> a = np.random.randint(0,20,5)>>> np.gradient(a)
array([  9. ,  -0.5,  -2. ,  -3. , -12. ])
Copier après la connexion


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:php.cn
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