Python之Numpy大法-01

这篇log是记录numpy,旨在为快速上手ml做准备,不需要花太多时间,以后可以边查API边做数据之类的工作 ㄟ(▔,▔)ㄏ

  • 首先当然是导入numpy啦 这步不会的请去学完了python基础再过来。。哼!!

  • import之后可以先运行试一下有没有问题,没问题的话就可以继续下一步了

  • 安装numpy(装了conda的同学可以用conda命令装,没装conda的可以用pip装,下面两种任选其一即可)

    	$ pip install numpy
    	$ conda install numpy
    
  • 如何知道自己是否装了conda?

    • mac打开终端,windows打开cmd统一输入conda之后敲回车
    • 然后你们自己就能看出来啦( ̄▽ ̄)~*

进入正题

import numpy as np
array = [1, 2, 3, 4, 5]  # define a list
array + 1 # let every element add 1 
---------------------------------------------------------------------------

TypeError   Traceback (most recent call last)

<ipython-input-1-4ae5e6a2eab2> in <module>
      1 array = [1, 2, 3, 4, 5]  # define a list
----> 2 array + 1


TypeError: can only concatenate list (not "int") to list
  • 不可以使用list对数字随便进行加减
  • 日后做矩阵计算或需要定义“向量(vector)”需要使用numpy定义成numpy.ndarray结构

ndarray是啥?

print([1, 2, 3, 4, 5])
array = np.array([1, 2, 3, 4, 5])  # 将一个list装入np.array()中,并赋值给array
print(type(array)) # output the type of array
print(array)
[1, 2, 3, 4, 5]
<class 'numpy.ndarray'>
[1 2 3 4 5]

可以看到输出的array类型是numpy.ndarray的对象,输出的值与list的区别就是少了逗号,实际上这步的操作就是把list转换成array数组

那ndarray中是否有一些操作能够方便我们实现对数据的运算呢
继续看一下上面的给list加1操作

added_array = array + 1
print(added_array)
[2 3 4 5 6]

可以说明ndarray这个数据类型可以对向量进行加减乘除操作,会对数组内的每一个元素都执行同样的加1操作

array数组之间是否可以进行相加?

  • array之间必须是相同的shape值(shape有点类似于线性代数里面行和列的概念,而两个array必须是同型矩阵。。。可以这么理解,但是ndarray只是数组不是矩阵)
added_array + array
array([ 3,  5,  7,  9, 11])
print(array[0], array[1]) # ndarray与数组的取索引操作相同
1 2

下面这个操作就是取array的shape值,表示array这个数组的形状(几行?几列?)

array.shape
(5,)
list_shape = [1, 2, 3, 4, 5] #定义一个list
list_shape.shape
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-14-17b93718099f> in <module>
      1 list_shape = [1, 2, 3, 4, 5] #定义一个list
----> 2 list_shape.shape


AttributeError: 'list' object has no attribute 'shape'

可以看到,list数据类型是不能调用shape操作的

现在来看一下二维的ndarray是什么样子的

np.array([[1, 2, 3], [4, 5, 6]])
array([[1, 2, 3],
       [4, 5, 6]])

可以看出,输出的是一个二维数组,请注意,这并不是矩阵,用ndarray进行矩阵运算得出来的结果并不是正确的

np.array([[1, 2, 3], [4, 5, 6]]).shape
(2, 3)

所以我们可以看到这个数组是一个两行三列的二维数组


2020年7月22日更新

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值