python之numpy学习笔记01

微信公众号: 点击蓝色字体小白图像与视觉进行关注

关于技术、关注yysilence00。有问题或建议,请公众号留言


  • 整理知识,学习笔记
  • 发布日记,杂文,所见所想

一:numpy介绍

NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。NumPy这个词来源于两个单词-- Numerical和Python。NumPy提供了大量的库函数和操作,可以帮助程序员轻松地进行数值计算

#引进numpy库
import numpy

这样你就可以用 numpy 里面所有的内置方法 (build-in methods) 了,比如求和与均值。
numpy.max()
numpy.min()

import numpy as np

my_arr = np.arange(1000000)
my_list = list(range(1000000))
# 看下面「numpy 数组」和「列表」之间的计算效率对比:两个大小都是 1000000,把每个元素翻倍,运行 10 次用 %time 记时。
%time for _ in range(10): my_arr2 = my_arr * 2

%time for _ in range(10): my_list2 = [x * 2 for x in my_list]
Wall time: 49 ms
Wall time: 1.68 s

1.1 数组array的创建

#np.array()方法创建
arr = [1, 4, 3.2, 5]
np.array(arr)
array([1. , 4. , 3.2, 5. ])
注意,numpy 数组的输出都带有 array() 的字样,里面的元素用「中括号 []」框住。
#np.arange() 和 np.linspace()方法创建
#定隔的 arange:固定元素大小间隔
#定点的 linspace:固定元素个数
arr_ = np.arange(10)
arr_
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(arr_)
[0 1 2 3 4 5 6 7 8 9]
注:用函数 print 打印 numpy 数组就没有 array() 的字样了,只用其内容,而且元素之间的「逗号」也没有了。
print( np.arange(10) )
print( np.arange(2,10) )
print( np.arange(2,11,2))
[0 1 2 3 4 5 6 7 8 9]
[2 3 4 5 6 7 8 9]
[ 2  4  6  8 10]

函数原型:

arange(start , stop , step)

其中 stop 必须要有,start 和 step 没有的话默认为 1
arr2 = np.linspace(2,8,3)
arr2
array([2., 5., 8.])
print(arr2)
[2. 5. 8.]
注:用函数 print 打印 numpy 数组就没有 array() 的字样了,只用其内容,而且元素之间的「逗号」也没有了。

函数原型:

alinspace (start , stop , num))

其中 start,stop 必须要有和 num 没有的话默认为 50

之间步长计算方法为(stop - start) / (num - 1)

NumPy 创建数组的其他特性

  • 用 zeros() 创建全是 0 的 n 维数组
  • 用 ones() 创建全是 1 的 n 维数组
  • 用 random() 创建随机 n 维数组
  • 用 eye() 创建对角矩阵 (二维数组)

对于前三种,由于输出是 n 为数组,它们的参数是一个「标量」或「元组类型的形状」,下面三个例子一看就懂了:

print( np.zeros(6) ) # 标量5代表形状(5,)
print( np.ones((2,5)) )
print( np.random.random((2,3,4)) )
[0. 0. 0. 0. 0. 0.]
[[1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]]
[[[0.96070029 0.13700133 0.86750795 0.60046375]
  [0.51925163 0.25111592 0.92045058 0.92544552]
  [0.31744394 0.46865624 0.6622886  0.77742483]]

 [[0.94793251 0.27383846 0.99977759 0.45765543]
  [0.70677173 0.07758811 0.78253172 0.46340084]
  [0.25709134 0.32701264 0.29887367 0.11625852]]]
#对于函数 eye(),它的参数就是一个标量,控制矩阵的行数或列数:
np.eye(4)
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

此外还可以设定 eye() 里面的参数 k

  • 默认设置 k = 0 代表 1 落在对角线上
  • k = 1 代表 1 落在对角线右上方
  • k = -1 代表 1 落在对角线左下方
np.eye(4, k=1)
array([[0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.],
       [0., 0., 0., 0.]])

1.2 数组array特性

我们来看看数组有什么属性 (attributes) 和方法 (methods)。

一维数组

arr3 = np.array([1, 2.1, 5, 4.3])
arr3
array([1. , 2.1, 5. , 4.3])

                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值