学习Python的童鞋,对numpy都不陌生,小白最近学习了一些Numpy的方法,发现Numpy真的很强大。
Numpy:本质的数字化的python,当然也可以存放string类型的数据。
其中,dtype用来指定数据类型,int32指,存放int类型最高32位,不过也可以去掉32,直接写int。数据类型float都可以定义数据的长度,也可以不定义。
tuple=(1,2,3,4)
a=np.array(tuple,dtype='int32')
a
结果为:
array([1, 2, 3, 4])
list=[1,2,3,4]
b=np.array(list,dtype='int32')
b
结果为:
array([1, 2, 3, 4])
如果同样是传入int类型的list,但是指定为float类型,如下:
list=[1,2,3,4]
c=np.array(list,dtype='float')
c
结果为:
array([1., 2., 3., 4.])
这里自动就将数据转成float类型了。
上面都是单list或者单tuple传入,那么一样可以混合传入:
d=np.array([list,tuple])
d
d.shape
array([[1, 2, 3, 4],
[1, 2, 3, 4]])
(2, 4)
这里安利一个小功能,查看array的类型(shape函数),从结果可以看出是一个2行4列的数组。
用法:zeros(shape, dtype=float, order='C')
参数:
shape:形状
dtype:数据类型,可选参数,默认numpy.float64
dtype类型:t ,位域,如t4代表4位
b,布尔值,true or false
i,整数,如i8(64位)
u,无符号整数,u8(64位)
f,浮点数,f8(64位)
c,浮点负数,
o,对象,
s,a,字符串,s24
u,unicode,u24
order:可选参数,c代表与c语言类似,行优先;F代表列优先
用法:numpy.ones(shape, dtype=None, order=’C’)
参数:
shape:形状
dtype:数据类型,可选参数,默认numpy.float64
order:可选参数,c代表与c语言类似,行优先;F代表列优先
用法:empty(shape[, dtype, order])
参数:shape : 整数或者整型元组定义返回数组的形状;
dtype : 数据类型,可选定义返回数组的类型。
order : {‘C’, ‘F’}, 可选规定返回数组元素在内存的存储顺序:C(C语言)-rowmajor;F(Fortran)column-major
用法:numpy.eye(N, M=None, k=0, dtype=
参数:
N:int值,行数。
M:int值,列数,如果没有则默认为N。
dtype:返回的数据元素的格式,默认为float。
order:1.14.0版本后,可选参数{'C', 'F'}
下面是对应的小例子~
1)np.zeros([3,3])
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
2)np.ones([3,4])
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
3)np.empty([2,3])
array([[3.46e-322, 0.00e+000, 0.00e+000],
[0.00e+000, 0.00e+000, 0.00e+000]])
4)np.eye(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
根据start与stop指定的范围以及step设定的步长,生成一个 ndarray。
在指定的间隔内返回均匀间隔的数字。
返回num均匀分布的样本,在[start, stop]。
这个区间的端点可以任意的被排除在外。
1.np.random.random((a,b))
a代表随机生成的个数,b代表区间,如果b=10就是从0-10中随机。
2.numpy.random.rand(a0, a1, ..., an)
生成一个[0,1)之间的随机浮点数或N维浮点数组。
3.numpy.random.randn(a0, a1, ..., an)
生成一个浮点数或N维浮点数组,取数范围:正态分布的随机样本数。
4.numpy.random.standard_normal(size=None)
生产一个浮点数或N维浮点数组,取数范围:标准正态分布随机样本
5.numpy.random.randint(low, high=None, size=None, dtype='l')
生成一个整数或N维整数数组,取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。
6.numpy.random.random_integers(low, high=None, size=None)
生成一个整数或一个N维整数数组,取值范围:若high不为None,则取[low,high]之间随机整数,否则取[1,low]之间随机整数。
7.numpy.random.random_sample(size=None)
生成一个[0,1)之间随机浮点数或N维浮点数组。
8.numpy.random.choice(a, size=None, replace=True, p=None)
从序列中获取元素,若a为整数,元素取值为np.range(a)中随机数;若a为数组,取值为a数组元素中随机元素。
9.numpy.random.shuffle(x)
对X进行重排序,如果X为多维数组,只沿第一条轴洗牌,输出为None。
10.numpy.random.permutation(x)
与numpy.random.shuffle(x)函数功能相同,两者区别:peumutation(x)不会修改X的顺序。
1)np.arange(2,10,2)
array([2, 4, 6, 8])
2)np.linspace(0,10,3)
array([ 0., 5., 10.])
3)a = np.random.random([4,4])
[[0.94927293 0.11516777 0.15205786 0.36055847]
[0.24878514 0.33557077 0.30436868 0.70995221]
[0.39684346 0.18775942 0.03005964 0.57851862]
[0.22523724 0.59238284 0.86613604 0.29699464]]
以上是对numpy的一些简单函数的使用及创建,欢迎大家交流学习哦。