Numpy - 知识点总结(一)

Numpy是一个Python科学计算的基础模块,Numpy不但能够完成科学计算的任务,也能够被用作有效的多位数据容器,这使得Numpy可以无缝并快速的整合各种数据;

1、 Numpy对象ndarray

Numpy中定义的最重要的对象称为ndarray的N维数组类型,它描述相同类型的元素集合,可以使用基于零的索引访问集合中的项目;

Ndarray中的每个元素在内存中使用相同大小的块。

注:这里需要与列表进行区分,list中并没有限制数据的类型,list中可以同时包含有字符、列表、元组等,但Numpy中生成的ndarray对象是相同元素的集合;

2、 创建数组

Numpy有多种方法可用于创建数组,一下对各种方法进行列举:

array

创建数组使用array方法,array方法的参数如下:

array(p_object,dtype = None, copy = True,order = ‘K’, subok = False, ndmin = 0)

相关参数的功能如下:

p_object :传入的数组对象,可以是list、tuple等

import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 = np.array([1,2,3,4,5,6])
arr2 = np.array((1,2,3,4,5,6))
arr3 = np.array([1,2,3,4,5,6,'a'])
# arr4 =np.array([1,2,3,4,5,6,(1,2,3,4,5)]) 不支持此种方式创建数组
# arr5 =np.array((1,2,3,4,5,6,(1,2,3,4,5))) 不支持此种方式创建数组
arr4 =np.array([[1,2,3,4,5,6],(1,2,3,4,5)])
arr5 =np.array(((1,2,3,4,5,6),(1,2,3,4,5)))
print(arr1)
print(arr2)
print(arr3)
print(arr4)
print(arr5)

dtype:生成的数组的数据类型,选输

import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 =np.array([1,2,3,4,5,6],dtype=np.int64)
arr2 =np.array((1,2,3,4,5,6),dtype=np.float32)
arr3 =np.array([1,2,3,4,5,6,'a'],dtype=np.str)
print(arr1)
print(arr2)
print(arr3)

copy:对象是否被复制,默认为True,选输#经测试,为False时,暂时没明白有什么区别

import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 =np.array([[1,2,3,4,5,6],[1,2,3,4,5,6]],copy= False)
arr2 = arr1.copy()
print(arr1)
print(arr2)
arr1 =np.array([[1,2,3,4,5,6],[1,2,3,4,5,6]])
arr2 = arr1.copy()
print(arr1)
print(arr2)

order:一共有4个值,分别为K – 不改变输入数据的排序方式;A - 不改变输入数据的排序方式;F – 按列;C – 按行;

subok:返回的数组被强制为基类数组,如果为True,则会返回子类数组;

ndmin:指定返回数组的最小维数

empty

使用empty创建数组:

import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 = np.empty((2,3))
print(arr1)

这里生成的数组中的数据是随机生成的;

zeros 

使用zeros创建数组

import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 = np.zeros((2,3))
print(arr1)

ones

使用ones创建数组:

import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 = np.ones((2,3),dtype=int)
print(arr1)

arange

使用arange创建,arange有四个参数,arange(start=None, stop=None, step=None, dtype=None):

Start指定了起始位置,stop指定了结束位置(不包含该值),step指定步长,默认为1;dtype指定数据类型;

import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 = np.arange(0,10).reshape((2,5))
print(arr1)

asarray

使用asarray创建数组

import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 = np.asarray([1,2,3])
print(arr1)

frombuffer

使用frombuffer创建数组

import numpy as np
"""创建数组"""
print("""创建数组""")
s = b'hello world'
arr1 = np.frombuffer(s, dtype='S1', count=5, offset=6)
print(arr1)


fromiter

使用fromiter创建数组

import numpy as np
"""创建数组"""
print("""创建数组""")
iterable = (x*x for x in range(5))
arr1 = np.fromiter(iterable,float)

linespace

使用linespace创建数组,linespace的参数为linspace(start, stop, num=50, endpoint=True, retstep=False,dtype=None)

Startstop:指定了起始和结束位置

num:指定了数量

endpoint:指定是否包含结束位置的值,默认包含;

retstep:为True时,返回数组以及数组之间的步长;

import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 = np.linspace(0,9,10)
print(arr1)

logspace

使用logspace创建数组

参数如下:

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

和linespace基本类似,其中base指定了以10为底;

import numpy as np
"""创建数组"""
print("""创建数组""")
arr1 = np.logspace(1,2,2,base=2)
print(arr1)

3、 ndarray的数据类型dtype

numpy的数据类型有多种,总结下来,分为以下几类,布尔型bool_,整形int,int型分8,16,32,64位的以及有符号和无符号的,浮点型数据float,float型分8、16、32、64位;复数型complex,complex分64位和128位;



猜你喜欢

转载自blog.csdn.net/u011587322/article/details/80746639
今日推荐