numpy简单操作

 

# Numpy 本质就是ndarray   多维数组(多位矩阵)
Numpy重点:
1.数组维度  shape,reshape   获得维度大小:A.shape => (3,5)
2.数组切片  x = np.arange(15).reshape(3,5)      x[0:2, 0:3] ***取前2行 前3列  
3.数组合并  x = np.concatenate([x1,x2], axis = 1) // axis默认是0 代表行合并



"""
    安装 pip install numpy
    导入 import numpy as np    (np 是简写)
    查看版本 np.__version__
"""

import array

""" 
arr = array.array('i',list(range(10)))   类型是 array类型 
array类型  元素是同一数据类型   
array处理效率比 list效率高

"""





#numpy.ndarray
import numpy as np

nparr = np.array(list(range(10)))
type(nparr)   #numpy.ndarray

# 元素类型是不可变的  就是整个数组的元素都是   str 或 int  等
# 整数类型放入 小数  会截取整数

"""
强制转换类型  nparr2 = np.array([1,2,3], dtype=float)
"""

"""
    1.方便处理多维数组或矩阵之间的运算
    2.在处理多维数组或矩阵,运算效率高
"""


# 矩阵之间相加   对应元素相加
def python_test(n):
    a = [i **2 for i in range(10)]
    b = [i **3 for i in range(10)]
    c = []
    for i in range(n):
        c.append(a[i] + b[i])
    return c
print(python_test(10))  #[0, 2, 12, 36, 80, 150, 252, 392, 576, 810]


"""
    np.array(range(10))  == np.arange(10)
"""

def numpy_test2(n):
    a = np.arange(n) ** 2  # 每个元素平方 
    b = np.arange(n) **3
    c = a + b
    return c

#初始化矩阵
np.zeros(10,dtype = int)
# =>  array([0,0,0,0,0,0,0,0,0,0])


"""shape  维度   三行五列  都是0"""
np.zeros(shape = (3,5),dtype = int)
# =>  array([ 
#       [0,0,0,0,0],
#       [0,0,0,0,0],
#       [0,0,0,0,0]
#     ])

"""shape  维度   三行五列  都是1"""
A = np.ones(shape = (3,5),dtype = int)

获得维度       A.ndim  =>  2
获得维度大小    A.shape => (3,5)
获得数组大小    Asize => 15 


# =>  array([ 
#       [1,1,1,1,1],
#       [1,1,1,1,1],
#       [1,1,1,1,1]
#     ])


"""shape  维度   三行五列  都是 99"""
np.full((3,5), 99)
# =>  array([ 
#       [99,99,99,99,99],
#       [99,99,99,99,99],
#       [99,99,99,99,99]
#     ])


"""  等差数列  linspace  """
np.linspace(0,20,10)  #0 - 20 之间的 十个数


"""  生成随机整数random.randint   生成随机浮点数random.random    """
np.random.randint(0,10)  #在0-10 之间随机一个数  不含10

np.random.randint(0,10,size = 5) #生成一维的 5个元素的 array数组 

np.random.randint(0,10,size = (2,5)) #生成 两行五列 array数组 

np.random.randint(0,10,size = (2,5,3)) #生成 三维 array数组 


#修改维度
"""
a = np.arange(10)
=>  array([0,1,2,3,4,5,6,7,8,9])

将一维数组 a  变成二行五列的二维数组
X = a.reshape(2,5)     ===   a.reshape(2,-1)  //两行  列均分
=>  array([[0,1,2,3,4],
         [5,6,7,8,9]])
"""


#取值操作
"""
Y = np.arange(15).reshape(3,5)    //0-15 的3行5列 的二维数组

Y[0] => [0,1,2,3,4]

取第一个数组的第一个元素
Y[0][0] => 0   //不推荐这样使用,可能报错
Y[(0,0)] === Y[0.0]  
"""


#切片 reshape

"""
一维:
    a = np.arange(10)
    a[0:5:2] === a[:5]  取0-4  2代表步距  隔一个一取下标的元素

二维:
    x = np.arange(15).reshape(3,5)
    x => array([
        [0,1,2,3,4],
        [5,6,7,8,9],
        [10,11,12,13,14]
    ])

    ***取前2行 前3列  [[0,1,3],[5,6,7]]
    x[0:2,0:3] => [[0,1,3],[5,6,7]]
"""


# 矩阵的合并  concatenate
x1 = np.array([
    [22,168],
    [18,178]
])

x2 = np.array([
    [0],
    [1]
])

axis = 1 代表x1,和x2  列合并
x = np.concatenate([x1,x2], axis = 1) // axis默认是0 代表行合并

=> array([
    [22,168,0],
    [18,178,1]
])



 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值