机器学习和数据分析-Numpy安装和基本使用

说明:本文会结合Python中的list和numpy对比讲解

1.numpy的安装:pip install numpy

2.打开命令窗口,启动jupyter:jupyter notebook

3.创建一个新的notebook 

4.导入numpy,查看其版本信息

import numpy as np
np.__version__

5.list可存放多种数据类型

li = list(range(10))
li
#结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

获取list中的元素list[3]

修改list中的元素 list[3] = 33

li[3] = 33
li
结果:[0, 1, 2, 33, 4, 5, 6, 7, 8, 9]

将数字类型改成字符串类型 list[3] = "hello python!"

li[3] = "hello python!"
li
结果:[0, 1, 2, 'hello python!', 4, 5, 6, 7, 8, 9]

6.python中的array只能存放一种数据类型,i表示整形,f表示浮点型

import array
arr = array.array('i',list(range(10)))
arr
结果:array('i', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

 

arr1 = array.array('f',list(range(10)))
arr1
结果:array('f', [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0])

7.修改其中一个元素为字符串,则会报错,比如arr[5] =  'hello python'

8.使用numpy中的array创建数据,直接传入一个初始化列表,不需要指定数据类型

nparr = np.array(list(range(10)))
nparr
结果:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

查看nparrr的数据类型:type(nparr)

9.可通过nparr[索引]取值,修改值

nparr[3]
结果:3
nparr[3] = 33
nparr
结果:array([ 0,  1,  2, 33,  4,  5,  6,  7,  8,  9])

 

10. 将某个值改成字符串会报错,如果改成浮点数,则会保存成功,但小数点会自动截取掉

npaar[5] = 'hello'
结果:报错ValueError: invalid literal for int() with base 10: 'hello'

nparr[5] = 55.8
nparr
结果:array([ 0,  1,  2, 33,  4, 55,  6,  7,  8,  9])

查看nparr中的数据类型nparr.dtype

11.初始化一个浮点数列表,可在最后一个数后面加上一个 .0

nparr2 = np.array([1,2,3.0])
nparr2
结果:array([1., 2., 3.])

查看array中的数据类型

nparr2.dtype
结果:dtype('float64')

 

12.也可以使用dtype指定数据类型

nparr3 = np.array([1,2,3],dtype=float)
nparr3
结果:array([1., 2., 3.])
nparr3.dtype
结果:dtype('float64')

 

13.python中的列表和numpy进行对比

python中的列表,定义一个方法

def python_test(n):
    a = [i**2 for i in range(n)]
    b = [i**3 for i in range(n)]
    c = []
    for i in range(n):
        c.append(a[i] + b[i])
    return c

传入一个参数:

python_test(10)
运行结果:[0, 2, 12, 36, 80, 150, 252, 392, 576, 810]

 

 

numpy 定义一个方法

def numpy_test(n):
    a = np.arange(n) ** 2
    b = np.arange(n) ** 3
    c = a+b
    return c

传入一个参数:

numpy_test(10)
结果:array([  0,   2,  12,  36,  80, 150, 252, 392, 576, 810], dtype=int32)

 

 传入两个比较大得数字,对比两个方法的性能:

%time res = python_test(10000000)
结果:Wall time: 21.3 s
%time res = numpy_test(10000000)
结果:Wall time: 494 ms

 

总结:1.a = np.arange(10) 等同于 a = np.array(list(range(10))) 等同于 a = np.array(range(10))

           2. np中的array乘以一个整数n的时候,是里面每个元素乘以这个整数n,而列表是将所有元素复制n遍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值