@@ -1515,52 +1515,32 @@ export default class DataFrame extends NDframe implements DataFrameInterface {
15151515 return this ;
15161516 }
15171517
1518- if ( typeof other === "number" && axis === 1 ) {
1519- const orig_tensor = this . tensor . clone ( ) ;
1520- let unit = [ NaN ] ;
1521- for ( let i = 1 ; i < orig_tensor . shape [ orig_tensor . rank - 1 ] ; i ++ ) {
1522- unit . push ( NaN ) ;
1518+ if ( typeof other === "number" ) {
1519+ let origDF = this . copy ( ) as DataFrame ;
1520+ if ( axis === 0 ) {
1521+ origDF = origDF . T ;
15231522 }
1524- let diff_array : any [ ] = orig_tensor . arraySync ( ) ;
1523+ const originalTensor = origDF . tensor . clone ( ) ;
1524+ const unit = new Array ( originalTensor . shape [ originalTensor . rank - 1 ] ) . fill ( NaN ) ;
1525+ let diffArray : any [ ] = originalTensor . arraySync ( ) ;
15251526 if ( other > 0 ) {
15261527 for ( let i = 0 ; i < other ; i ++ ) {
1527- diff_array . unshift ( unit ) ;
1528- diff_array . pop ( ) ;
1528+ diffArray . unshift ( unit ) ;
1529+ diffArray . pop ( ) ;
15291530 }
15301531 }
15311532 else if ( other < 0 ) {
15321533 for ( let i = 0 ; i > other ; i -- ) {
1533- diff_array . push ( unit ) ;
1534- diff_array . shift ( ) ;
1535- }
1536- }
1537- const diff_tensor = tensorflow . tensor2d ( diff_array , orig_tensor . shape ) ;
1538- return this . $MathOps ( [ orig_tensor , diff_tensor ] , "sub" , inplace ) ;
1539- }
1540-
1541- if ( typeof other === "number" && axis === 0 ) {
1542- const orig_df = new DataFrame ( this . tensor . clone ( ) ) ;
1543- const orig_tensor = orig_df . T . tensor . clone ( ) ;
1544- let unit = [ NaN ] ;
1545- for ( let i = 1 ; i < orig_tensor . shape [ orig_tensor . rank - 1 ] ; i ++ ) {
1546- unit . push ( NaN ) ;
1547- }
1548- let diff_array : any [ ] = orig_tensor . arraySync ( ) ;
1549- if ( other > 0 ) {
1550- for ( let i = 0 ; i < other ; i ++ ) {
1551- diff_array . unshift ( unit ) ;
1552- diff_array . pop ( ) ;
1534+ diffArray . push ( unit ) ;
1535+ diffArray . shift ( ) ;
15531536 }
15541537 }
1555- else if ( other < 0 ) {
1556- for ( let i = 0 ; i > other ; i -- ) {
1557- diff_array . push ( unit ) ;
1558- diff_array . shift ( ) ;
1559- }
1538+ const diffTensor = tensorflow . tensor2d ( diffArray , originalTensor . shape ) ;
1539+ const diffDF = this . $MathOps ( [ originalTensor , diffTensor ] , "sub" , inplace ) as DataFrame ;
1540+ if ( axis === 0 ) {
1541+ return diffDF . T ;
15601542 }
1561- const diff_tensor = tensorflow . tensor2d ( diff_array , orig_tensor . shape ) ;
1562- const diff_df = this . $MathOps ( [ orig_tensor , diff_tensor ] , "sub" , inplace ) as DataFrame ;
1563- return diff_df . T ;
1543+ return diffDF ;
15641544 }
15651545
15661546 if ( other instanceof DataFrame || other instanceof Series ) {
0 commit comments