#Numpy基础数据结构
#Numpy数组是一个多维数组对象,称为ndarray。由两部分组成:
#1.实际的数据
#2.描述这些数据的元数据
import numpy as np
ar = np.array([1,2,3,4,5,6])
ar1 = np.array([[1,2,3,4],[3,4,5,3],[5,4,1,1]]) #二维数组
print([1,2,3,4,5,6])
print(ar,type(ar))
print(ar.ndim) #输出数组维度的个数,rank
print(ar1)
print(ar1.ndim)
print(ar1.shape) #数组的维度,n行m列(n,m)
print(ar1.size) #总共元素的个数
print(ar.dtype) #数值数据类型
print(ar.itemsize)
print(ar.data)
ar1
输出:
[1, 2, 3, 4, 5, 6]
[1 2 3 4 5 6] <class 'numpy.ndarray'>
1
[[1 2 3 4]
[3 4 5 3]
[5 4 1 1]]
2
(3, 4)
12
int32
4
<memory at 0x0000014A4B0264C8>
Out[16]:
array([[1, 2, 3, 4],
[3, 4, 5, 3],
[5, 4, 1, 1]])
#创建数组:array()函数
ar2 = np.array(range(10))
ar3 = np.arange(10)
ar4 = np.array([0,1,2,3,4,5,6])
ar5 = np.array([[0,1,2,3,4,5,6],[0,1,2,3,4,5,6]])
ar6 = np.array([[0,1,2,3,4,5,6],['a','b','c','d','e','f','g']])
ar7 = np.array([[0,1,2,3,4,5,6],['a','b','c','d','e','f','g','h']])
ar8 = np.array(np.random.rand(10).reshape(2,5))
print(ar2)
print(ar3)
print(ar4)
print(ar5)
print(ar6,ar6.ndim)
print(ar7,ar7.ndim)
print(ar8)
输出:
[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4 5 6]
[[0 1 2 3 4 5 6]
[0 1 2 3 4 5 6]]
[['0' '1' '2' '3' '4' '5' '6']
['a' 'b' 'c' 'd' 'e' 'f' 'g']] 2
[list([0, 1, 2, 3, 4, 5, 6]) list(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])] 1
[[ 0.32319683 0.17803918 0.36251316 0.0944563 0.98634951]
[ 0.34702789 0.36164464 0.70085575 0.30127829 0.97613475]]
#使用arrange()创建数组
print(np.arange(10))
print(np.arange(10.0))
print(np.arange(3,13))
print(np.arange(3.0,19.0,3))
print(np.arange(10000))
输出:
[0 1 2 3 4 5 6 7 8 9]
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
[ 3 4 5 6 7 8 9 10 11 12]
[ 3. 6. 9. 12. 15. 18.]
[ 0 1 2 ..., 9997 9998 9999]
# 创建数组:linspace():返回在间隔[开始,停止]上计算的num个均匀间隔的样本。
ar1 = np.linspace(2.0, 3.0, num=5)
ar2 = np.linspace(2.0, 3.0, num=5, endpoint=False)
ar3 = np.linspace(2.0, 3.0, num=5, retstep=True)
print(ar1,type(ar1))
print(ar2)
print(ar3,type(ar3))
# numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
# start:起始值,stop:结束值
# num:生成样本数,默认为50
# endpoint:如果为真,则停止是最后一个样本。否则,不包括在内。默认值为True。
# retstep:如果为真,返回(样本,步骤),其中步长是样本之间的间距 → 输出为一个包含2个元素的元祖,第一个元素为array,第二个为步长实际值
输出:
[ 2. 2.25 2.5 2.75 3. ] <class 'numpy.ndarray'>
[ 2. 2.2 2.4 2.6 2.8]
(array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25) <class 'tuple'>
# 创建数组:zeros()/zeros_like()/ones()/ones_like()
ar1 = np.zeros(5)
ar2 = np.zeros((2,2), dtype = np.int)
print(ar1,ar1.dtype)
print(ar2,ar2.dtype)
print('------')
# numpy.zeros(shape, dtype=float, order='C'):返回给定形状和类型的新数组,用零填充。
# shape:数组纬度,二维以上需要用(),且输入参数为整数
# dtype:数据类型,默认numpy.float64
# order:是否在存储器中以C或Fortran连续(按行或列方式)存储多维数据。
ar3 = np.array([list(range(5)),list(range(5,10))])
ar4 = np.zeros_like(ar3)
print(ar3)
print(ar4)
print('------')
# 返回具有与给定数组相同的形状和类型的零数组,这里ar4根据ar3的形状和dtype创建一个全0的数组
ar5 = np.ones(9)
ar6 = np.ones((2,3,4))
ar7 = np.ones_like(ar3)
print(ar5)
print(ar6)
print(ar7)
# ones()/ones_like()和zeros()/zeros_like()一样,只是填充为1
输出:
[ 0. 0. 0. 0. 0.] float64
[[0 0]
[0 0]] int32
------
[[0 1 2 3 4]
[5 6 7 8 9]]
[[0 0 0 0 0]
[0 0 0 0 0]]
------
[ 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[[[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]]
[[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]]]
[[1 1 1 1 1]
[1 1 1 1 1]]
# 创建数组:eye()
print(np.eye(5))
# 创建一个正方的N*N的单位矩阵,对角线值为1,其余为0
输出:
[[ 1. 0. 0. 0. 0.]
[ 0. 1. 0. 0. 0.]
[ 0. 0. 1. 0. 0.]
[ 0. 0. 0. 1. 0.]
[ 0. 0. 0. 0. 1.]]
14天Python编程从入门到实践--Day13:数据分析之Numpy
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...