day01-Numpy的安装

numpy的安装

同样,anaconda内置有Numpy包

Numpy是用c语言实现的,运算速度比python快得多

import numpy as np
np.__version__
out: 1.18.5

使用Jupyter编辑器打印numpy包的版本

NumPy

ndarray对象

NumPy定义了一个n维数组对象,简称ndarray对象,它是一个一系列相同类型元素组成的数组集合。数组中的每个元素都占有相同大小的内存块。与c语言中的数组大致相同。

ndarray对象采用了数组的索引机制,存储方式几乎相同

ndarray参数

numpy.array(object,dtype=None,copy=True,order=None,subok=False,admin=0)

参数说明:在这里插入图片描述

  • object:可以是一个列表、元组,必须给定
  • dtype:float,int,可强制转化
  • 求一个数组的秩array.ndim
#创建实列
np.array([i for i in range(10) if i%2==0])
#得到array[0,2,4,6,8]
np.array([1,2,3,4.5,'5'])
#得到np.array(['1','2','3','4.5','5'])
#会自动往内存最大的类型转换
np.array([
    [1,2,3],
    ('a','b','c')
])
#得到array([['1','2','3'],['a','b','c']])
#是一个二维数组
np.array([
    [1,2,3],
    ('a','b','c','d')
])
#当嵌套序列数量不一样时,会转化为一维数组
#array([list(1,2,3),['a','b','c','d'])
np.array([1,2.5,3.1,4.0,5],dtype='int')
#得到array([1,2,3,4,5])向下取整。round()为四舍五入函数

对于第三个参数的说明:

my_list1 = [1,2,3,4]
my_list2 = mylist1
my_list2[1] = 10
#此时输出my_list1 = [1,10,3,4]
#为引用传值。
id(mylist1)#地址
id(mylist2)#地址
#两则的地址是一模一样的。
a = np.array([1,2,3,4])
b = np.array(a)
print('a:',id(a),'b:',id(b))
#结果a数组的地址与b地址不相同
#说明是引用不是赋值,修改b,a不会被修改
a = np.array([1,2,3,4])
b = a
print('a:',id(a),'b:',id(b))
#结果a数组的地址与b地址相同
#说明是引用赋值,修改b,a也会被修改
a = np.array([1,2,3])
print(id(a))

b = np.array(a)
print(id(b))

c = a.copy()
print(id(c))

d = a
print(id(d))

#b、c是值传递,d是地址传递

4.ndmin

a = np.array([1,2,3],ndmin = 2)
a.ndim
#输出2得到a为array([[1,2,3]])

5.subok参数,类型为bool值,默认False。True:代表使用object的内部数据类型,False:使用数组的数据类型

array属性

在这里插入图片描述

更改数组维数reshape

a = np.array(20)
#一维数组
a = np.array(20).reshape(4,5)
#改为4行5列的数组,且4*5==20不然报错
调整维度resize
numpy.resize(a,new shape)
如果新数组大于原始数组,则新数组将填充a的重复副本,
#a为2行2列
a=np.array([[0,1],[2,3]])
#一a为原数组创建2行3列的新数组
b23=np.resize(a,(2,3))
b23
#array([[0,1,2],
#		[3,0,1]])
#将0,1,2,3循环填入数组中即填充的为数组的重复副本
#使用0填充需要
#array.resize(new_shape)
a.resize((3,4),refcheck = False)
array.size
#求数组元素个数,二维元素总个数
a.astype('int')
#创建a后强制更改元素类型

arange对象

numpy.arange(start,stop,step,dtype)

参数说明:在这里插入图片描述

np.arange(10)
#array([0>>9])
np.arange(3.1)
#array([0.,1.,2.,3.])可指定为浮点
#而python原生range(3.1)为错误代码不能指定浮点数
x = np.arange(5,dtype = float)
# x = array([0.,1.,2.,3.,4.])
np.arange(10,20,2)
#array([10>>18])
len(x)
#求数组长度,不能求出二维元素总个数
array.size
#求数组元素个数,二维元素总个数

等差数列:linspace对象

用于生成等差数列

np.linspace(start,num=50,endpoint=True,retstep=False,dtype = None)

特点【】左闭右也闭

参数说明:在这里插入图片描述

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

A = np.linspace(0,4,9)
#生成【0-4】均分的array浮点数组

B = np.linspace(0,4.1,9)
#生成【0-4.1】均分的array浮点数组

ar1 = np.linspace(2.0,3.0,num = 5 ,retstep = True)
#生成一个元组,第一个元素为array([2.,2.25,2.5,2.75,3.])
#第二个参数为步长,即每个元素之间的差值0.25
#(array([2.,2.25,2.5,2.75,3.]),0.25)

等比数列:logspace对象

np.logspace(start,stop,num= 50,endpoint=True,base = 10.0,dtype = None)

参数说明:

在这里插入图片描述

a = np.logspace(0,9,10,base = 2)
#array([1.,2.,4.,8.,16.,32.,64.,128.,256.,512,])
np.logspace(A,B,C,base = D)
  • A:生成数组的起始值为D的A次方
  • B:生成数组的结束值为D的B次方
  • C:总共生成C个数
  • D:指数型数组的底数为D,默认为10
# 我们先使用前3个参数,将[1,5]均匀分成3个数,得到1,3,5},
#然后利用第4个参数base=2(默认是10)使用指数函数可以得到最终输出结果{2^1,2^3,2^5}
np.logspace(1,5,3,base=2)
np.logspace(1.0,2.0, num=10)

#等价于下面:
np.linspace(1.0,2.0, num=10)
print (a)
10*a

全0数列:zeros()

创建指定大小的数组,数组元素以0填充

numpy.zeros(shape,dtype=float,order = 'C')

参数说明:

在这里插入图片描述

#1.shape可以给一个数,表示一维的多少个0
np.zeros(5)
#默认为浮点数
#shape可以给一个元组表示维数与个数
np.zeros((2,2))
#2行2列的全0数组
#array([[0.,0.],
#	    [0.,0.]])
np.zeros((2,2,3))
#2块2行3列的全0数组,对于下面定义
array([[[0.,0.,0.],
	    [0.,0.,0.]],

		[[0.,0.,0.],
	    [0.,0.,0.]]])

a = array([[1,2,3],[4,5,6]])
np.zeros_like(a)
#创建出与a数组形状相同、类型相同的全0数列
#array([[0,0,0],
#	    [0,0,0]])
  • 全1数列:np.ones()

总结:

在这里插入图片描述在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值