文章目录
numpy----创建数组(python)
创建数组有5种常规机制:
1.从其他Python结构(例如,列表,元组)
2.转换 numpy原生数组的创建(例如,arange、ones、zeros等)
3.从磁盘读取数组,无论是标准格式还是自定义格式
4.通过使用字符串或缓冲区从原始字节创建数组
5.使用特殊库函数(例如,random)
下文并不介绍4
1.从其他Python结构(例如,列表,元组)
将Python array_like对象转换为Numpy数组
通常,在Python中排列成array-like结构的数值数据可以通过使用array()函数转换为数组。最明显的例子是列表和元组。一些对象可能支持数组协议并允许以这种方式转换为数组。找出对象是否可以使用array()转换为一个数组numpy 数组的简单方法很简单,只要交互式试一下,看看它是否工作!(Python方式)。
>>> x = np.array([2,3,1,0])
>>> x = np.array([2, 3, 1, 0])
>>> x = np.array([[1,2.0],[0,0],(1+1j,3.)]) # note mix of tuple and lists,and types
>>> x = np.array([[ 1.+0.j, 2.+0.j], [ 0.+0.j, 0.+0.j], [ 1.+1.j, 3.+0.j]])
np.array(seq)
seq:可以是一切序列型对象。如seq是一组等长列表组成的嵌套列表,则会形成一个多维数组。此外,seq中所有元素必须是相同的数据类型。
In: data1 = [6, 7.5, 8, 0, 1]
arr1 = np.array(data1)
arr1
Out: array([ 6. , 7.5, 8. , 0. , 1. ])
In: data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr2 = np.array(data2)
arr2
Out: array([[1, 2, 3, 4],
[5, 6, 7, 8]])
2.转换 numpy原生数组的创建(例如,arange、ones、zeros等)
(1)ones、zeros
Numpy内置了从头开始创建数组的函数
zeros(shape)将创建一个用指定形状用0填充的数组。默认的dtype是float64。ones(shape)将创建一个用1个值填充的数组。它在所有其他方面与zeros相同。
In: np.zeros(10)
Out: array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
In: np.ones((3, 6))
Out: array([[ 1., 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1., 1.]])
(2)使用arange—Python内置函数range的数组版
In: np.arange(15)
Out: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
>>> np.arange(2, 10, dtype=np.float)
array([ 2., 3., 4., 5., 6., 7., 8., 9.])
>>> np.arange(2, 3, 0.1)
array([ 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9])
3.从磁盘读取数组
如下代码保存了一个二位数组(矩阵)在变量my_matrix中,将其保存在了本地new.csv文件中,下次使用可以直接读取。
#将结果输出并保存,下次使用直接读取这个就行了
np.savetxt('new.csv', my_matrix, delimiter = ',')
my_matrix = np.loadtxt(open("new.csv","rb"),delimiter=",",skiprows=0)
5.使用特殊库函数(random,eye)
In [21]: np.random.randn(6, 3)
Out[21]:
array([[-2.44179138, -0.13462751, -0.16921825],
[-0.31681002, 0.18074226, -0.44818138],
[-0.24928908, -0.26223449, 0.63402363],
[ 1.3336142 , 0.37030573, 0.07320383],
[-1.06536287, -0.04833094, -1.35664694],
[-1.79510978, -0.47022578, 0.61915442]])
In: np.eye(4)
Out: array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
附注:本文仅作为防忘笔记。
参考博客:https://zhuanlan.zhihu.com/p/30132591
https://blog.csdn.net/vernice/article/details/50683637
官方文档:
https://www.numpy.org.cn