基于Anaconda的Numpy学习

  • Anaconda安装模块
  • jupyter notebook使用
  • Numpy
  • Numpy属性
  • Numpy方法
  • 索引和切片
  • 矩阵拼接


前面我们讲了anaconda的下载及安装详细教程,现在我们开始学习numpy,其是python数值计算最重要的基础包。

anaconda和pycharm是两套不同的系统,所以我们要区分开来。

Anaconda安装模块

首先看安装相关模块怎么整?

在pycharm中,我们安装某一模块,经常在cmd控制台中,使用pip install 模块名来安装模块。

但是在anaconda中,我们应该在开始菜单,找到anaconda下面的anaconda prompt,并且键入命令conda install 模块名来安装模块。

anaconda 怎么调用现成的python anaconda调用numpy_ide


由于我的已经安装了,所以显示如下信息,如果提示你们升级,点击y即可。

anaconda 怎么调用现成的python anaconda调用numpy_数组_02

jupyter notebook使用

首先在开始菜单中找到anaconda下面的jupyter notebook,点击进入,其会自动跳转到相应页面。

anaconda 怎么调用现成的python anaconda调用numpy_python_03


跳到主页面后,我们可以在这里new python3文件。

anaconda 怎么调用现成的python anaconda调用numpy_数组_04


其界面相关按钮及其含义如图所示。

anaconda 怎么调用现成的python anaconda调用numpy_python_05

Numpy

首先我们来看几个实例。

import numpy
vector=numpy.array([[5,10,15],[20,25,30],[35,40,45]])
print(vector)

这里调用numpy.array()方法,生成一个二维数组,注意整个参数外面是一个[],然后里面每一个[]代表一行,注意格式。

anaconda 怎么调用现成的python anaconda调用numpy_pycharm_06

import numpy as np
a = np.arange(1,10,2)
print(a)
print(type(a))
print(a.dtype)

np.arange和python中的range用法类似,这里type(a)是输出a的类型,a是ndarray类型,dtype是ndarray对象的属性,a.dtype是输出a中存储的数据类型。

anaconda 怎么调用现成的python anaconda调用numpy_python_07

import numpy as np
b = np.array(range(1,6),dtype='float32')
print(b)
print(type(b))
print(b.dtype)

我们可以在函数中传入参数,设置dtype。

anaconda 怎么调用现成的python anaconda调用numpy_python_08

c = np.arange(1,10).reshape(3,3)
c

我们可以调用reshape(行,列)方法,来改变ndarray对象的形状。

在打印的时候,可以直接使用变量名,但是其只能在最后一行,如果想打印非最后一行的数据,还是需要print(变量名)。

anaconda 怎么调用现成的python anaconda调用numpy_ide_09


也可以对矩阵进行运算,如下!

anaconda 怎么调用现成的python anaconda调用numpy_ide_10

Numpy属性

结合上述实例,想必对Numpy有一定的小了解,下面列表中列出了Numpy的相关属性,其中ndarray即为我们创建的Numpy对象!

anaconda 怎么调用现成的python anaconda调用numpy_ide_11


anaconda 怎么调用现成的python anaconda调用numpy_数组_12

Numpy方法

anaconda 怎么调用现成的python anaconda调用numpy_python_13


anaconda 怎么调用现成的python anaconda调用numpy_数组_14


演示如下:

# 创建全为1的对象 第一个参数是对象的形状 (行数,列数) 第二个参数可以指定数据类型
d = np.ones((3,3),dtype=np.float16)
d

anaconda 怎么调用现成的python anaconda调用numpy_pycharm_15

# 创建全为1的对象 参数是一个对象 会按照对象的形状创建全为1的数组
e = np.ones_like([[1,2,3],[4,5,6]])
e

anaconda 怎么调用现成的python anaconda调用numpy_数组_16


创建等差数组,默认包含stop。

anaconda 怎么调用现成的python anaconda调用numpy_python_17


创建随机数组,使用的是np.random,由于很多,遇到了查一下就行。改变类型和形状如下:

anaconda 怎么调用现成的python anaconda调用numpy_d3_18

f = np.arange(1,10)
print(f)
print(type(f))
print(f.shape)
print(f.dtype)
# reshape是产生一个新的对象
g = f.reshape((3,3))
print(g)
print(type(g))
print(g.shape)
print(g.dtype)
# resize是改变原来的对象
g.resize((1,9))
print(g)
print(type(g))
print(g.shape)
print(g.dtype)
g.astype(np.float16).dtype

anaconda 怎么调用现成的python anaconda调用numpy_ide_19


矩阵转置可以使用ndarray.T或者np.transpose(ndarray)。

anaconda 怎么调用现成的python anaconda调用numpy_pycharm_20


逆矩阵:

anaconda 怎么调用现成的python anaconda调用numpy_ide_21


单位矩阵:

anaconda 怎么调用现成的python anaconda调用numpy_d3_22


点积:i,j表示两个矩阵。

np.dot(i,j)
i @ j

索引和切片

anaconda 怎么调用现成的python anaconda调用numpy_数组_23


注意逗号后面可以省略,前面不可以省略。

anaconda 怎么调用现成的python anaconda调用numpy_数组_24

矩阵拼接

nd1 = np.arange(1,7).reshape(2,3)
nd2 = np.arange(1,10).reshape(3,3)
# vstack()是垂直拼接,即拼接行,故两个矩阵的列相同。参数为tuple类型。
np.vstack((nd1,nd2))

anaconda 怎么调用现成的python anaconda调用numpy_数组_25

nd3 = np.arange(1,7).reshape(3,2)
nd4 = np.arange(1,10).reshape(3,3)
# hstack()是水平拼接,即拼接列,故两个矩阵的行相同。参数为tuple类型。
np.hstack((nd3,nd4))

anaconda 怎么调用现成的python anaconda调用numpy_ide_26

np.concatenate((nd3,nd4),axis=1)
np.concatenate((nd1,nd2),axis=0)

axis表示轴,在numpy中的二维数组,axis有0轴和1轴,0表示行变列不变,1表示列变行不变。

anaconda 怎么调用现成的python anaconda调用numpy_pycharm_27


叮咚!结束!