GVKun编程网logo

NumPy 2d 数组的切片,或者如何从 nxn 数组 (n>m) 中提取 mxm 子矩阵?(numpy数组切片操作)

5

对于NumPy2d数组的切片,或者如何从nxn数组(n>m)中提取mxm子矩阵?感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍numpy数组切片操作,并为您提供关于Blob存储上的Azure触

对于NumPy 2d 数组的切片,或者如何从 nxn 数组 (n>m) 中提取 mxm 子矩阵?感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍numpy数组切片操作,并为您提供关于Blob 存储上的 Azure 触发器,从图像(Blob)中提取 EXIF(纬度/经度/方向...)数据、How to extract pcd from a rosbag? 如何从 rosbag 中提取 pcd、LogisticRegression 是否需要 NxN 矩阵?、NOIP2014 普及组 子矩阵的有用信息。

本文目录一览:

NumPy 2d 数组的切片,或者如何从 nxn 数组 (n>m) 中提取 mxm 子矩阵?(numpy数组切片操作)

NumPy 2d 数组的切片,或者如何从 nxn 数组 (n>m) 中提取 mxm 子矩阵?(numpy数组切片操作)

我想切片一个 NumPy nxn 数组。我想提取该数组的 m 行和列的 任意 选择(即行/列数中没有任何模式),使其成为一个新的 mxm
数组。对于这个例子,假设数组是 4x4,我想从中提取一个 2x2 数组。

这是我们的数组:

from numpy import *
x = range(16)
x = reshape(x,(4,4))

print x
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]

要删除的行和列是相同的。最简单的情况是当我想提取一个位于开头或结尾的 2x2 子矩阵时,即:

In [33]: x[0:2,0:2]
Out[33]: 
array([[0,1],[4,5]])

In [34]: x[2:,2:]
Out[34]: 
array([[10,11],[14,15]])

但是,如果我需要删除另一种行/列混合怎么办?如果我需要删除第一行和第三行/行,从而提取子矩阵[[5,7],[13,15]]怎么办?行/行可以有任何组合。我在某处读到我只需要使用数组/行和列的索引列表来索引我的数组,但这似乎不起作用:

In [35]: x[[1,3],[1,3]]
Out[35]: array([ 5,15])

我找到了一种方法,即:

    In [61]: x[[1,3]][:,3]]
Out[61]: 
array([[ 5,15]])

第一个问题是它很难阅读,尽管我可以忍受。如果有人有更好的解决方案,我当然想听听。

另一件事是我在一个论坛上读到,用数组索引数组会强制 NumPy
制作所需数组的副本,因此在处理大型数组时,这可能会成为一个问题。为什么会这样/这种机制是如何工作的?

Blob 存储上的 Azure 触发器,从图像(Blob)中提取 EXIF(纬度/经度/方向...)数据

Blob 存储上的 Azure 触发器,从图像(Blob)中提取 EXIF(纬度/经度/方向...)数据

如何解决Blob 存储上的 Azure 触发器,从图像(Blob)中提取 EXIF(纬度/经度/方向...)数据?

我正在尝试从上传到 Azure 的 jpeg 文件中检索纬度/经度/旋转属性,但无法获取。

触发时的当前函数:

module.exports = async function (context,myBlob) {
    context.log( myBlob);
};

触发器正在上传,我可以获取上传文件的 URI

解决方法

终于找到解决办法了

  1. 你必须使用 npm 安装“exif-parser”
  2. 使用 (Kudu) 访问 PowerShell 或 CMD
  3. 转到“高级工具”

enter image description here

  1. 然后,启动 PowerShell 调试控制台并导航到您的应用程序的 wwwroot 文件夹

enter image description here

  1. 然后安装你的模块“npm install exif-parser”
  2. 如果“package.json”有任何错误显示,请忽略它
  3. 转到触发器或函数应用并测试模块:)
const exifParser = require(''exif-parser'');
module.exports = async function (context,myBlob) {
    context.log(myBlob);
    var parser = require(''exif-parser'').create(myBlob);
    var result = parser.parse();
    context.log(result);
};
,

如果您使用阅读器阅读 JPEG,那么应该有各种 EXIF 格式的属性需要公开。

如果您将 JPEG 下载为二进制文件,那么我认为您需要保存该文件,然后再读取它以获取 EXIF 信息。

尝试使用 Exif.js JavaScript 库

用于从图像文件中读取 EXIF 元数据的 JavaScript 库。

您可以在浏览器中的图像上使用它,无论是图像还是文件输入元素。检索 EXIF 和 IPTC 元数据。此包也可用于 AMD 或 CommonJS 环境。

如需更多参考,请关注此github code

How to extract pcd from a rosbag? 如何从 rosbag 中提取 pcd

How to extract pcd from a rosbag? 如何从 rosbag 中提取 pcd

4.1 bag_to_pcd

Reads a bag file, saving all ROS point cloud messages on a specified topic as PCD files.

 4.1.1 Usage

$ rosrun pcl_ros bag_to_pcd <input_file.bag> <topic> <output_directory>

Where:

  • <input_file.bag> is the bag file name to read.

  • <topic> is the topic in the bag file containing messages to save.

  • <output_directory> is the directory on disk in which to create PCD files from the point cloud messages.

 4.1.2 Example

Read messages from the /laser_tilt_cloud topic in data.bag, saving a PCD file for each message into the ./pointclouds subdirectory.

$ rosrun pcl_ros bag_to_pcd data.bag /laser_tilt_cloud ./pointclouds

 

参考:http://wiki.ros.org/pcl_ros

LogisticRegression 是否需要 NxN 矩阵?

LogisticRegression 是否需要 NxN 矩阵?

如何解决LogisticRegression 是否需要 NxN 矩阵?

我有用于分类任务的大型数据框。我使用中值输入对缺失值进行了简单的预处理,这是我的模型

  1. GetLocalBindAddr

但是我得到了

  1. numeric_transformer = Pipeline(steps=[
  2. (''imputer'',SimpleImputer(strategy=''median''))
  3. ])
  4. preprocessor = ColumnTransformer(
  5. transformers=[
  6. (''num'',numeric_transformer,numeric_features)
  7. ]
  8. )
  9. model = Pipeline(steps=[
  10. (''preprocessor'',preprocessor),(''logisticregressor'',LogisticRegression())
  11. ])
  12. # some data gaining
  13. X_train,X_test,y_train,y_test = train_test_split(
  14. df.iloc[:,df.columns != ''label''],df.iloc[:,df.columns == ''label''],test_size=0.33,random_state=42
  15. )
  16. print(f"X_train.shape is {X_train.shape}")
  17. print(f"y_train.shape is {y_train.values.ravel().shape}")
  18. model.fit(X_train,y_train.values.ravel())

您可以看到我的数据大小为 (3359775,13),其中 N = 3359775。 为什么在内部构造NxN矩阵?有什么办法可以避免吗?

NOIP2014 普及组 子矩阵

NOIP2014 普及组 子矩阵

链接:https://ac.nowcoder.com/acm/problem/16503
来源:牛客网

题目描述

给出如下定义:
1. 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵。

例如,下面左图中选取第 2 、 4 行和第 2 、 4 、 5 列交叉位置的元素得到一个 2 x 3 的子矩阵如右图所示。

 

9 3 3 3 9
9 4 8 7 4
1 7 4 6 6
6 8 5 6 9
7 4 5 6 1

 


的其中一个 2 x 3 的子矩阵是

 

4 7 4
8 6 9

 

2. 相邻的元素:矩阵中的某个元素与其上下左右四个元素(如果存在的话)是相邻的。

3. 矩阵的分值:矩阵中每一对相邻元素之差的绝对值之和。

本题任务:给定一个 n 行 m 列的正整数矩阵,请你从这个矩阵中选出一个 r 行 c 列的子矩阵,使得这个子矩阵的分值最小,并输出这个分值。

输入描述:

输入第一行包含用空格隔开的四个整数 n,m,r,c ,意义如问题描述中所述,每两个整数之间用一个空格隔开。

接下来的 n 行,每行包含 m 个用空格隔开的整数,用来表示问题描述中那个 n 行 m 列的矩阵。

输出描述:

一个整数,表示满足题目描述的子矩阵的最小分值。
示例 1

输入

复制
5 5 2 3
9 3 3 3 9
9 4 8 7 4
1 7 4 6 6
6 8 5 6 9
7 4 5 6 1

输出

复制
6

说明

该矩阵中分值最小的 2  3 列的子矩阵由原矩阵的第 4 行、第 5 行与第 1 列、第 3 列、第 4 列交叉位置的元素组成,为
6 5 6
7 5 6
其分值为:|6−5| + |5−6| + |7−5| + |5−6| + |6−7| + |5−5| + |6−6| =6。


解题思路:枚举选出行的情况,然后对列进行DP就可以了。dp【i】【j】为选了j列,并且右边第一列为第i列的值。那么dp【i】【j】=min(dp【k】【j】+加入第i列对行之间的绝对值的影响+加入i列对列之间的绝对值的影响)。至于这两个“影响”怎么求看代码中的“init”吧。
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
const int maxn=20;
typedef long long ll;
int a[maxn][maxn];
int n,m,r,c;
int vis[maxn];
int dp[maxn][maxn];
vector<int> vec;
int hang[maxn],lie[maxn][maxn];
int ans;
void init(){
    memset(hang,0,sizeof(hang));
    memset(lie,0,sizeof(lie));
    for(int i=1;i<=n;i++){
        if(vis[i]==1)
        vec.push_back(i);
    }
    int len=vec.size();
    for(int i=1;i<=m;i++){
        for(int j=0;j<len-1;j++){
            hang[i]+=abs(a[vec[j]][i]-a[vec[j+1]][i]);
        }
    }
    for(int i=1;i<=m;i++){
        for(int j=i+1;j<=m;j++){
            for(int k=0;k<len;k++){
                lie[i][j]+=abs(a[vec[k]][i]-a[vec[k]][j]);
            }
            lie[j][i]=lie[i][j];
        }
        
    }
    vec.clear();
}
void DP(){
    for(int i=1;i<=m;i++){
        dp[i][c]=inf;
        for(int j=1;j<=i;j++){
            if(j==1)dp[i][j]=hang[i];
            else if(i==j){
                dp[i][j]=dp[i-1][j-1]+hang[i]+lie[i-1][i];
            }
            else{
                dp[i][j]=inf;
                for(int k=j-1;k<i;k++){
                    dp[i][j]=min(dp[i][j],dp[k][j-1]+hang[i]+lie[k][i]);
                }
            }
            
        }
            ans=min(ans,dp[i][c]);
    }
}
void solve(int be,int cnt){
    if(cnt==r){
        init();
        DP();
        return ;
    }
    if(be>n){
        return ;
    }
    
        vis[be]=1;
        solve(be+1,cnt+1);
        vis[be]=0;
        solve(be+1,cnt);
    
    return ;
}
int main(){
    scanf("%d%d%d%d",&n,&m,&r,&c);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            scanf("%d",&a[i][j]);
        }
    }
    ans=inf;
    solve(1,0);
    printf("%d\n",ans);
    return 0;
}

 

我们今天的关于NumPy 2d 数组的切片,或者如何从 nxn 数组 (n>m) 中提取 mxm 子矩阵?numpy数组切片操作的分享就到这里,谢谢您的阅读,如果想了解更多关于Blob 存储上的 Azure 触发器,从图像(Blob)中提取 EXIF(纬度/经度/方向...)数据、How to extract pcd from a rosbag? 如何从 rosbag 中提取 pcd、LogisticRegression 是否需要 NxN 矩阵?、NOIP2014 普及组 子矩阵的相关信息,可以在本站进行搜索。

本文标签: