科学计算,深度学习,神经网络Numpy【0】创建数组
本帖最后由 MSK 于 2017-12-16 23:28 编辑创建数组
俗话说:
万丈高楼平地起
神经网络,深度学习在流弊也要先从创建数组开始~{:10_281:}
标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的,需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计算时间
函数库的导入
推荐方式:
import numpy as np
首先你得安装numpy才行~
.array()
以通过给array函数传递Python的序列对象创建数组,如果传递的是多层嵌套的序列,将创建多维数组.
>>> a = np.array()
>>> b = np.array((5, 6, 7, 8))
>>> c = np.array([,, ])
>>> b
array()
>>> c
array([,
,
])
数组的大小可以通过其shape属性获得:
>>> a.shape
(4,)
>>> c.shape
(3, 4)
数组a的shape只有一个元素,因此它是一维数组。而数组c的shape有两个元素,因此它是二维数组,其中第0轴的长度为3,第1轴的长度为4。还可以通过修改数组的shape属性,在保持数组元素个数不变的情况下,改变数组每个轴的长度。
**** Hidden Message *****
numpy数组与python列表类似,可以索引,可以通过索引修改值
>>> temp = np.array([])
>>> temp
array([])
>>> temp
3
>>> temp = 30
>>> temp
array([[ 2, 30,4]])
通过修改.shape属性来修改数组轴的大小
>>> c.shape
(3, 4)
>>> c.shape = 4,3
>>> c
array([[ 1,2,3],
[ 4,4,5],
[ 6,7,7],
[ 8,9, 10]])
**** Hidden Message *****
数组c和d其实共享数据存储内存区域,类似python浅拷贝~
>>> c
array([[ 1,2,3,4,4,5],
[ 6,7,7,8,9, 10]])
.dtype
数组属性通过.dtype 获得
>>> c
array([[ 1,2,3,4,4,5],
[ 6,7,7,8,9, 10]])
>>> c.dtype
dtype('int32')
可以通过dtype参数在创建时指定元素类型:
>>> np.array([,, ], dtype=np.float)
array([,
,
])
arange()
arange函数类似于python的range函数,通过指定开始值、终值和步长来创建一维数组,注意数组不包括终值:
>>> np.arange(0,1,0.1)
array([ 0. ,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9])
linspace
inspace函数通过指定开始值、终值和元素个数来创建一维数组,可以通过endpoint关键字指定是否包括终值,缺省设置是包括终值:
>>> np.linspace(0, 1, 12)
array([ 0. ,0.09090909,0.18181818,0.27272727,0.36363636,
0.45454545,0.54545455,0.63636364,0.72727273,0.81818182,
0.90909091,1. ])
logspace
logspace函数和linspace类似,不过它创建等比数列,下面的例子产生1(10^0)到100(10^2)、有20个元素的等比数列:
都是10^n{:10_336:}
>>> np.logspace(0, 2, 20)
array([ 1. , 1.27427499, 1.62377674, 2.06913808,
2.6366509 , 3.35981829, 4.2813324 , 5.45559478,
6.95192796, 8.8586679 , 11.28837892, 14.38449888,
18.32980711, 23.35721469, 29.76351442, 37.92690191,
48.32930239, 61.58482111, 78.47599704,100. ])
fromfuction()
写一个Python的函数,它将数组下标转换为数组中对应的值,然后使用此函数创建数组
>>> def func(i):
... return i%4+1
...
>>> np.fromfunction(func, (10,))
array([ 1.,2.,3.,4.,1.,2.,3.,4.,1.,2.])
fromfunction函数的第一个参数为计算每个数组元素的函数,第二个参数为数组的大小(shape),因为它支持多维数组,所以第二个参数必须是一个序列,所以刚才采用(10,){:10_297:}
下面的例子中,输出的数组a中的每个元素a都等于func2(i, j):
>>> def func2(i, j):
... return (i+1) * (j+1)
...
>>> a = np.fromfunction(func2, (9,9))
>>> a
array([,
,
,
,
,
,
,
,
])
**** Hidden Message ***** 开始学习numpy,还请大大们看看{:10_297:}
@~风介~ @小甲鱼 @不二如是
这东西你应该感兴趣吧~
@新手·ing 学习一下知识...... 无名侠 发表于 2017-7-19 01:33
学习一下知识......
{:10_256:} 好久不见啊~
追番中~ 无名侠 发表于 2017-7-19 01:33
学习一下知识......
欢迎~ 很好很强大{:10_256:} 谢谢分享
交出教程! 谢谢分享{:5_91:} 学习
我叫赵硕 发表于 2017-8-2 11:52
学习
欢迎~ 学习下 youz0003 发表于 2017-8-2 15:25
学习下
欢迎~ {:10_257:}{:10_257 会ie,,,,,,,,,,, 感谢分享,过来学习~
学习了 来学习 学习