标签:c_str ace 一维数组 生成随机数 复数 error: 问题 数组元素 教程
Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。如果接触过matlab、scilab,那么numpy很好入手。
pip install numpy
在NumPy中,维度称之为axis
(复数是axes
),维度的数量称之为rank
。
(通用做法import numpu as np 简单输入)
NumPy的数组类是ndarray
,它有一个别名是 numpy.array
,但这与Python标准库的array.array
并不一样。后者仅仅是一个一维数组。而ndarray
具有以下的属性:
ndarray.ndim
:数组的维数。在Python世界中,维数称之为rank
ndarray.shape
:数组的维度。这是一系列数字,长度由数组的维度(ndim
)决定。例如:长度为n的一维数组的shape
是n。一个n行m列的矩阵的shape
是n,mndarray.size
:数组中所有元素的数量ndarray.dtype
:数组中元素的类型,例如numpy.int32
, numpy.int16
或者numpy.float64
ndarray.itemsize
:数组中每个元素的大小,单位为字节ndarray.data
:存储数组元素的缓冲。通常我们只需要通过下标来访问元素,而不需要访问缓冲np.array([1,2,3,4])
np.array((1.2,2,3,4))
np.array(((1,2,3),(4,5,6)))
np.array([[1,2,3],[4,5,6]])
np.array([[1,2],[3,4]], dtype=complex )
numeric_strings2 = np.array([‘1.23‘,‘2.34‘,‘3.45‘],dtype=np.string_) print(numeric_strings2) [b‘1.23‘ b‘2.34‘ b‘3.45‘] t=numeric_strings2.astype(float) print(t) [ 1.23 2.34 3.45]
x=np.array(((1,2,3,4),(5,6,7,8),(9,10,11,12))) y=x[:,1] y[0]=20 print(y) print(x)
结果:
通过上面可以发现改变y会改变x ,因而我们可以推断,y和x指向是同一块内存空间值,系统没有为y 新开辟空间把x值赋值过去。
arr = np.arange(10) arr[3:6]=10 print(arr)
结果:
思考为什么这么设计? Numpy 设计是为了处理大数据,如果切片采用数据复制话会产生极大的性能和内存消耗问题。
arr = np.arange(10) arr_copy = arr[3:6].copy() print(arr_copy) arr_copy[:]=24 print(arr_copy) print(arr)
结果:
l=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] l[5:8] = 12 #报错 TypeError: can only assign an iterable print(l) l1= l[5:8] print(l1) l1[0]=12 print(l1) print(l)
结果:
arr2d = np.arange(1,10).reshape(3,3) print(arr2d) print(arr2d[2]) print(arr2d[0][2]) print(arr2d[0,2])
结果:
a = np.array([[1,0],[2,3]]) print(a) print() print(a.transpose())
结果:
除了生成数组之外,当我们已经持有某个数据之后,我们可能会需要根据已有数组来产生一些新的数据结构,这时候我们可以使用下面这些函数:
reshape
:根据已有数组和指定的shape,生成一个新的数组vstack
:用来将多个数组在垂直(v代表vertical)方向拼接(数组的维度必须匹配)hstack
:用来将多个数组在水平(h代表horizontal)方向拼接(数组的维度必须匹配)hsplit
:用来将数组在水平方向拆分vsplit
:用来将数组在垂直方向拆分
在实际上的项目工程中,我们常常会需要一些特定的数据,NumPy中提供了这么一些辅助函数:
zeros
:用来创建元素全部是0的数组ones
:用来创建元素全部是1的数组empty
:用来创建未初始化的数据,因此是内容是不确定的arange
:通过指定范围和步长来创建数组linespace
:通过指定范围和元素数量来创建数组random
:用来生成随机数
参考:
标签:c_str ace 一维数组 生成随机数 复数 error: 问题 数组元素 教程
原文地址:https://www.cnblogs.com/hoaprox/p/10968053.html