numpy部份函数或命令用法(不定时更新)

1.numpy数组中":“,"::"和”-"的意义

numpy数组中":“和”-"的意义

分片功能

a[1: ] 表示该列表中的第1个元素到最后一个元素,而,a[ : n]表示从第0个元素到第n个元素(不包括n)

import numpy as np

POP_SIZE = 3
total_size = 10
idx = np.arange(total_size)
good_idx_1 = idx[-POP_SIZE:]
good_idx_2 = idx[:-POP_SIZE]
good_idx_3 = idx[POP_SIZE:]
good_idx_4 = idx[:POP_SIZE]

print("good_idx_1", good_idx_1)
print("good_idx_2", good_idx_2)
print("good_idx_3", good_idx_3)
print("good_idx_4", good_idx_4)

# good_idx_1 [7 8 9]
# good_idx_2 [0 1 2 3 4 5 6]
# good_idx_3 [3 4 5 6 7 8 9]
# good_idx_4 [0 1 2]

测试代码

import numpy as np

b = np.arange(start=0, stop=24, dtype=int)

print('b.shape', b.shape)
# b.shape (24,)
b1 = b.reshape((4, 2, 3))
print('the value of b1\n', b1)
# the value of b1
#  [[[ 0  1  2]
#   [ 3  4  5]]
#
#  [[ 6  7  8]
#   [ 9 10 11]]
#
#  [[12 13 14]
#   [15 16 17]]
#
#  [[18 19 20]
#   [21 22 23]]]

print('b1[-1]\n', b1[-1])
# 从最外层的维度分解出最后一个模块
# b1[-1]
# [[18 19 20]
#  [21 22 23]]
for a in b1[-1]:
    print('s')
# 在这个模块中有两个小的模块,所以程序运行两次
# s
# s

print('b1[:-1]\n', b1[:-1])
# 从最外层的模块中分解出除最后一个子模块后其余的模块

# b1[:-1]
#  [[[ 0  1  2]
#   [ 3  4  5]]
#
#  [[ 6  7  8]
#   [ 9 10 11]]
#
#  [[12 13 14]
#   [15 16 17]]]
for a1 in b1[:-1]:
    print('s')
# 在这个模块中有三个小的模块,所以程序运行两次
# s
# s
# s

print('b1[-1:]\n', b1[-1:])
# 写在最后一个维度的":"没有实质性作用,此处表示的意思和b1[-1]相同
# b1[-1:]
#  [[[18 19 20]
#   [21 22 23]]]

print('b1[:,-1]\n', b1[:, -1])
# 表示取出最外层的所有维度后每一个子模块中选择最后一个子模块
# b1[:,-1]
#  [[ 3  4  5]
#  [ 9 10 11]
#  [15 16 17]
#  [21 22 23]]

print('b1[:,:,-1]\n', b1[:, :, -1])
# 表示取最里层维度的最后一个元素重新组成新的元组
# b1[:,:,-1]
#  [[ 2  5]
#  [ 8 11]
#  [14 17]
#  [20 23]]
::具有分片功能以及取反功能

分块功能
取反功能
测试代码:

#分块功能
>>> s = range(20)
>>> s
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> s[::3]
[0, 3, 6, 9, 12, 15, 18]
####################################################################
#取反功能
>>> a=numpy.array(numpy.arange(18).reshape(3,3,2))
>>> a
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5]],

       [[ 6,  7],
        [ 8,  9],
        [10, 11]],

       [[12, 13],
        [14, 15],
        [16, 17]]])
>>> a[...,::-1]
array([[[ 1,  0],
        [ 3,  2],
        [ 5,  4]],

       [[ 7,  6],
        [ 9,  8],
        [11, 10]],

       [[13, 12],
        [15, 14],
        [17, 16]]])

2.concatenate函数

concatenate
concatenate((a1, a2, …), axis=0)
数组拼接函数
参数:
a1,a2……为要拼接的数组
axis为在哪个维度上进行拼接,默认为0

>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6]])
>>> np.concatenate((a, b), axis=0)
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> np.concatenate((a, b.T), axis=1)
array([[1, 2, 5],
       [3, 4, 6]])

传入的数组必须具有相同的形状,这里的相同的形状可以满足在拼接方向axis轴上数组间的形状一致即可.
np.concatenate((a, b), axis=1)会报错

3.numpy.asarray()用法及代码示例函数

Python numpy.asarray()用法及代码示例
当我们要将输入转换为数组时,使用numpy.asarray()function。输入可以是列表,元组列表,元组,元组元组,列表元组和ndarray。

用法: numpy.asarray(arr, dtype=None, order=None)

参数:

arr :[数组]输入数据,可以转换为数组的任何形式。这包括列表,元组列表,元组,元组元组,列表元组和ndarray。

dtype :[数据类型,可选]默认情况下,从输入数据中推断出数据类型。
order :是使用行优先(C-style)还是列主要(Fortran-style)内存表示形式。默认为“ C”。

Return :[ndarray]数组对arr的解释。如果输入已经是具有匹配dtype和顺序的ndarray,则不执行复制。如果arr是ndarray的子​​类,则返回基类ndarray。
示例:

#数组
import numpy as geek 
my_list = [1, 3, 5, 7, 9] 
  
print ("Input  list:", my_list) 
   
    
out_arr = geek.asarray(my_list) 
print ("output array from input list:", out_arr) 
>>>Input  list: [1, 3, 5, 7, 9]
>>>output array from input list: [1 3 5 7 9]
##################################################################
#元组数组
my_tuple = ([1, 3, 9], [8, 2, 6]) 
   
print ("Input  touple:", my_tuple) 
    
out_arr = geek.asarray(my_tuple)  
print ("output array from input touple:", out_arr) 
>>>Input  touple: ([1, 3, 9], [8, 2, 6])
>>>output array from input touple: [[1 3 9]
>>>[8 2 6]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值