数据分析专栏

python科学计算: numpy库的使用

2019-05-30  本文已影响21人  Viva_Stephen

我们先来看看结构

定义就不多说了,我们一一展开内容

ndarry数组

创建数组:

import numpy as np

a = np.array([1, 2, 3])

b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

b[1,1]=10#将1轴1行的数字替换为10

print (a.shape)

print (b.shape)

print (a.dtype)

print (b)

得到结果

(3L,)

(3L, 3L)

int32

[[ 1  2  3]

[ 4 10  6]

[ 7  8  9]]

shape表示获得数组大小,

dtype表示获得数组的属性;

结构数组

import numpy as np

persontype = np.dtype({

    'names':['name', 'age', 'chinese', 'math', 'english'],

    'formats':['S32','i', 'i', 'i', 'f']})#用字典的方法定义dtype

peoples = np.array([("ZhangFei",32,75,100, 90),("GuanYu",24,85,96,88.5),

      ("ZhaoYun",28,85,92,96.5),("HuangZhong",29,65,85,100)],

    dtype=persontype)#定义array时用dtype=persontype来引入结构

ages = peoples[:]['age']#查询age这一特征的所有数据

chineses = peoples[:]['chinese']

maths = peoples[:]['math']

englishs = peoples[:]['english']

print np.mean(ages)

print np.mean(chineses)

print np.mean(maths)

print np.mean(englishs)

运行结果

28.25

77.5

93.25

93.75

ufunc运算

x1 = np.arange(1,11,2)#1为三个参数分别为(起始值,终值,步长)

x1 = np.arange(1,11,2)

x2 = np.linspace(1,9,5)

print np.add(x1, x2)#加

print np.subtract(x1, x2)#减

print np.multiply(x1, x2)#乘

print np.divide(x1, x2)#除

print np.power(x1, x2)#求n次方

print np.remainder(x1, x2)#求余

运行结果

[ 2. 6. 10. 14. 18.]

[0. 0. 0. 0. 0.]

[ 1.  9. 25. 49. 81.]

[1. 1. 1. 1. 1.]

[1.00000000e+00 2.70000000e+01 3.12500000e+03 8.23543000e+05

3.87420489e+08]

[0. 0. 0. 0. 0.]

统计函数最大最小max(),min()

import numpy as np

a = np.array([[1,2,3], [4,5,6], [7,8,9]])

print np.amin(a)#最小值也可以用直接用min

print np.amin(a,0)#0轴的最小值,在[1,4,7]中选择最小值

print np.amin(a,1)#在1轴中选择最小值,在[1,2,3]中选最小值

print np.amax(a)

print np.amax(a,0)

print np.amax(a,1)

运行结果

1

[1 2 3]

[1 4 7]

9

[7 8 9]

[3 6 9]

统计最大值与最小值之差 ptp()

a = np.array([[1,2,3], [4,5,6], [7,8,9]])

print np.ptp(a)#9-1=8

print np.ptp(a,0)#7-1=6

print np.ptp(a,1)#3-1=2

运行结果

8

[6 6 6]

[2 2 2]

统计数组的百分位数 percentile()

a = np.array([[1,2,3], [4,5,6], [7,8,9]])

print np.percentile(a, 50)#50%的位置上是什么数字

print np.percentile(a, 50, axis=0)

print np.percentile(a, 50, axis=1)

统计数组中的中位数 median()、平均数 mean()

a = np.array([[1,2,3], [4,5,6], [7,8,9]])

# 求中位数

print np.median(a)

print np.median(a, axis=0)

print np.median(a, axis=1)

# 求平均数

print np.mean(a)

print np.mean(a, axis=0)

print np.mean(a, axis=1)

统计数组中的加权平均值 average()

a = np.array([1,2,3,4])

wts = np.array([1,2,3,4])

print np.average(a)#(1+2+3+4)/4=2.5

print np.average(a,weights=wts)# (1*1+2*2+3*3+4*4)/(1+2+3+4)=3.0

统计数组中的标准差 std()、方差 var()

a = np.array([1,2,3,4])

print np.std(a)

print np.var(a)

排序问题

sort(a, axis=-1, kind=‘quickso’,order=None)

a = np.array([[4,3,2],[2,4,1]])

print np.sort(a)

print np.sort(a, axis=None)

print np.sort(a, axis=0) 

print np.sort(a, axis=1) 

上一篇 下一篇

猜你喜欢

热点阅读