FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python/example/numpy/fromdata.cpp at develop · boostorg/python · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
boostorg
/
python
Public
Notifications
You must be signed in to change notification settings
Fork
223
Star
537
Code
Issues
173
Pull requests
34
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
python
/
example
/
numpy
/
fromdata.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
48 lines (42 loc) · 1.68 KB
Breadcrumbs
python
/
example
/
numpy
/
fromdata.cpp
Copy path
File metadata and controls
48 lines (42 loc) · 1.68 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//
Copyright Ankit Daftery 2011-2012.
//
Distributed under the Boost Software License, Version 1.0.
//
(See accompanying file LICENSE_1_0.txt or copy at
//
http://www.boost.org/LICENSE_1_0.txt)
/*
*
* @brief An example to show how to access data using raw pointers. This shows that you can use and
* manipulate data in either Python or C++ and have the changes reflected in both.
*/
#
include
<
boost/python/numpy.hpp
>
#
include
<
iostream
>
namespace
p
=
boost::python;
namespace
np
=
boost::python::numpy;
int
main
(
int
argc,
char
**argv)
{
//
Initialize the Python runtime.
Py_Initialize
();
//
Initialize NumPy
np::initialize
();
//
Create an array in C++
int
arr[] = {
1
,
2
,
3
,
4
} ;
//
Create the ndarray in Python
np::ndarray py_array =
np::from_data
(arr, np::dtype::get_builtin<
int
>() ,
p::make_tuple
(
4
),
p::make_tuple
(
4
),
p::object
());
//
Print the ndarray that we just created, and the source C++ array
std::cout <<
"
C++ array :
"
<< std::endl ;
for
(
int
j=
0
;j<
4
;j++)
{
std::cout << arr[j] <<
'
'
;
}
std::cout << std::endl <<
"
Python ndarray :
"
<< p::extract<
char
const
*>(
p::str
(py_array)) << std::endl;
//
Change an element in the python ndarray
py_array[
1
] =
5
;
//
And see if the C++ container is changed or not
std::cout <<
"
Is the change reflected in the C++ array used to create the ndarray ?
"
<< std::endl ;
for
(
int
j =
0
;j<
4
; j++)
{
std::cout << arr[j] <<
'
'
;
}
//
Conversely, change it in C++
arr[
2
] =
8
;
//
And see if the changes are reflected in the Python ndarray
std::cout << std::endl <<
"
Is the change reflected in the Python ndarray ?
"
<< std::endl << p::extract<
char
const
*>(
p::str
(py_array)) << std::endl;
}
Back
|
FazBrowse Home
|
New Git URL