Numpy学习笔记(一)

1. 数组的创建

1.1 数组的属性

-> ndim  : 返回数组的维数。
-> shape : 返回数组的尺寸(行数, 列数)

-> size  : 返回数组中元素的个数
-> dtype : 返回数组中元素的类型
-> itemsize : 返回数组中元素所占内存的大小(字节为单位)

1.2 创建数组时提供的参数

Numpy库提供了array函数,可以创建一维或多维数组,语法如下

numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

-> object : 可迭代对象,用于创建一个数组
-> dtype  : 声明数组中元素的类型,默认为None,表示会跟随传入的可迭代对象中的元素本身的类型; 比如你的object传入的是['1', '2']那么dtype就是<U2
-> ndmin  : 指定数组的最小维数,若传入的object维数小于ndmin所定义的,则会自动补充空[]增加维数。

举个例子:

import numpy as np

'''
利用array函数创建数组
'''

arr1 = np.array([['1', '90'], ['2', '90'], ['3', 90]])
print(arr1)

# shapre属性可以改变数组的行和列的排列形式,但是要保证改变后元素的个数和之前是一样的
arr1.shape = 3, 2

# 针对元素的属性
print('dtype: ', arr1.dtype)        # 元素的类型
print('size: ', arr1.size)          # 数组中元素的个数
print('itemsize: ', arr1.itemsize)  # 一个元素占几个字节

# 针对数组的属性
print('ndim: ', arr1.ndim)          # 数组的维数
print('shape: ', arr1.shape)        # 数组是几行几列的

输出结果如下:

[['1' '90']
 ['2' '90']
 ['3' '90']]
dtype:  <U2
size:  6
itemsize:  8
ndim:  2
shape:  (3, 2)

1.3 创建数组的8中方法

1.3.1 array

向array(object)传入object对象,根据object创建一个数组。

arr1 = np.array([['1', '90'], ['2', '90'], ['3', 90]])
print(arr1)

输出

[['1' '90']
 ['2' '90']
 ['3' '90']]

1.3.2 arange

arange(初始值, 终值, 步长)
可以通过指定初始值,终值和步长来创建数组。注意全进是左闭右开的 [初始值, 终值) ,即指定的终值是取不到的。

arr1 = np.arange(0, 1, 0.1)
print(arr1)  

# [0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

1.3.3 linspace

linspace(初始值,终值, 元素个数)
闭区间, 即终值是可以取到的

arr1 = np.linspace(1, 5, 10)
print(arr1)  
# [1.         1.44444444 1.88888889 2.33333333 2.77777778 3.22222222 3.66666667 4.11111111 4.55555556 5.        ]

1.3.4 logspace

logspace(开始次方,最终次方,元素个数);
生成等比数列,前两个参数表示的是10的多少次方; 闭区间,终值能取到

arr1 = np.logspace(0, 2, 4)  # 生成一个等比数列,4个元素,[10^0-10^2]
print(arr1)  # [  1.           4.64158883  21.5443469  100.        ]

1.3.5 zeros

zeros((行, 列))
创建一个值全部为0的数组

arr1 = np.zeros((4, 3))
print(arr1)
'''
[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]
'''

1.3.6 eye

eye(数组大小)
生成主对角线为1,其他元素为0的数组,类似于单位矩阵

arr1 = np.eye(4)
print(arr1)
'''
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
'''

1.3.7 diag

diag([对角线上的元素])
自定义对角线上的元素,其他元素都为0

arr1 = np.diag([1, 2, 3])
print(arr1)
'''
[[1 0 0]
 [0 2 0]
 [0 0 3]]
'''

1.3.8 ones

ones((行, 列))
创建元素全部为1的数组

arr1 = np.ones((3, 4))
print(arr1)
'''
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]
'''

上面很多数组的默认元素类型都是float,可以在定义的时候指定dtype来改变类型,如

arr1 = np.ones((3,4), dtype='str')
print(arr1)
'''
[['1' '1' '1' '1']
 ['1' '1' '1' '1']
 ['1' '1' '1' '1']]
'''

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值